Вопрос №55737 от пользователя Сергей Гаранин в уроке «Покрытие кода тестами (Code Coverage)», курс «Python: Автоматическое тестирование»
Добрый день! Не могу понять в чем я накосячил, направьте в нужную сторону пожалуйста. https://ru.hexlet.io/code_reviews/421014
pytest вполне конкретно показывает, где вы ошиблись. Вот пример:
> assert get([7, 8, 9], 4) is None
E assert False is None
E + where False = get([7, 8, 9], 4)
Функция возвращает False
, тест ожидает is None
. И всё остальные проблемы настолько же конкретно описаны.
Aleksei Pirogov, так эта часть кода написана не мной. И в том случае и должен выдаваться 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
> assert index_of([2, 7, 3, 2, 4, 4],3, -50) == 2
E assert [] == 2
E + where [] = index_of([2, 7, 3, 2, 4, 4], 3, -50)
если я исправлю ассерт на
assert index_of([2, 7, 3, 2, 4, 4],3, -50) == []
то он выдаст
> assert index_of([2, 7, 3, 2, 4, 4],3, -50) == []
E assert 2 == []
E + where 2 = index_of([2, 7, 3, 2, 4, 4], 3, -50)
Что правильно, потому что там и должна быть двойка
Сергей, добрый день! Чтобы проверка прошла успешно, нужно чтобы все три неправильных варианта функций get, index_of и my_slice не прошли тесты. Посмотрите на вывод тестов:
FAILED tests/test_solution.py::test_get - assert False is None
FAILED tests/test_solution.py::test_index_of - assert [] == 2
Сейчас получается, что два теста из трех не пройдены, а должно быть не пройдено все три. Неправильный вариант функции my_slice прошел тестирование, хотя не должен был.
При передаче в функцию my_slice отрицательного индекса begin, который больше длинны списка, функция должна просто начать извлечение с самого начала списка. Но представьте, что функция работает неверно и при передаче такого индекса begin всегда просто возвращает пустой список (независимо от того, что передано или не передано третьим параметром). Проверьте этот случай
Используйте Хекслет по максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.







