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

Сергей Гаранин

Добрый день! Не могу понять в чем я накосячил, направьте в нужную сторону пожалуйста. https://ru.hexlet.io/code_reviews/421014

3 0

Aleksei Pirogov

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. И всё остальные проблемы настолько же конкретно описаны.

0

Сергей Гаранин

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)

Что правильно, потому что там и должна быть двойка

0

Maksim Litvinov

Сергей, добрый день! Чтобы проверка прошла успешно, нужно чтобы все три неправильных варианта функций 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 всегда просто возвращает пустой список (независимо от того, что передано или не передано третьим параметром). Проверьте этот случай

0

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

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

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

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

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

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

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