Вопрос №59345 от пользователя Андрей в уроке «Покрытие кода тестами (Code Coverage)», курс «Python: Автоматическое тестирование»

Андрей

Не могу взять в толк что от меня хочет упражнение. Вот мое ревью https://ru.hexlet.io/code_reviews/471768 Через терминал проверяю покрытие тестов 100% без ошибок. Но жму проверить и выходят ошибки

Тут я не понимаю сути ошибки, -1 не правильный вариант, и как тут пишется, правильный None, но и None не подходит.

    def test_index_of():
        assert index_of([2, 7, 3, 2, 4], 2) == 0
        # BEGIN (write your solution here)
        assert index_of([2, 7, 3, 2, 4], 2, 1) == 3
        assert index_of([2, 7, 3, 2, 4, 4], 2 , -5) == 3
        assert index_of([1, 7, 3, 4, 4], 2) == -1
>       assert index_of([], 4) == -1
E       assert None == -1
E        +  where None = index_of([], 4)

Если ставлю None то в терминале покрытия показывает ошибку

FAILED tests/test_solution.py::test_index_of - assert -1 == None
1 failed, 2 passed in 0.13s

А в проверке пишет

assert index_of([2, 7, 3, 2, 4], 2, 1) == 3
        assert index_of([2, 7, 3, 2, 4, 4], 2 , -5) == 3
        assert index_of([1, 7, 3, 4, 4], 2) == -1
>       assert index_of([], 4) == None
E       assert -1 == None
E        +  where -1 = index_of([], 4)

Что как я понимаю означать должно что -1 то правильный вариант выражения index_of([], 4)

Честно я уже совсем не понимаю задания, я прочел все топики этого упражнения, но так и не смог понять что от меня хотят. Я пробовал специально завалить по одному тесту в каждом модуле при 100% покрытии, но это мне не помогло. Сейчас у меня 100% покрытия и ни одной ошибки при make test-coverage, но проверка все равно ругается. Правильные assert почему то не работают и я не могу понять почему.

3 0

Максим Литвинов

Добрый день, Андрей! В этом упражнении, чтобы протестировать ваши тесты, мы проверяем при помощи них четыре комплекта функций (get, index_of, slice). Один правильный и три заведомо неправильных. В правильном комплекте все три функции должны пройти тестирование, в каждом неправильном все три теста должны завалиться. Сейчас получается, что на первом неправильном комплекте тесты test_slice() и test_index_of() не прошли (как и должны были), а тест test_get прошел. Проверьте этот тест, он не должен был пройти. Обратите внимание, что функция get() изначально полностью покрыта тестами, там можно было ничего не менять.

0

Андрей

Спасибо за направление! Если честно как по мне не очень понятное задание для меня. А точнее меня путали ошибки в output. Я смотрел на вывод и не понимал, почему правильные assert мне говорят что они не верные. И даже прочитав топики тут, я все равно не понял что к чему, ибо выводы после проверки меня путали сильно(( Хоть я и видел что right тесты проходят, но почему wrong тесты меня выкидывают с ошибкой не понимал. Я видел что count был 2 а ожидалось 3, но не сообразил что к чему относится(

Иные курсы проходятся легко, а вот некоторые прям со скрипом, что аж думаешь что ты самый тупой человек на земле, просто потому что задачу понять сложнее чем написать код для нее))) Ну ладно, прорвемся как-нибудь, авось когда то я познаю дзен программирования и может даже начну работать в этой сфере, спасибо за помощь и курсы!

0

Максим Литвинов

Тут дело просто в особом способе тестирования вашего решения в этом курсе. Прочитайте эту статью, она должна помочь лучше понять, как происходит проверка

1

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
8 декабря 8 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
8 декабря 8 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
8 декабря 8 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
8 декабря 8 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
8 декабря 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Новый
Создает веб-приложения со скоростью света
8 декабря 5 месяцев