Оповещение, если оно не равно истинному значению num_steps - PullRequest
0 голосов
/ 13 ноября 2018

Я не очень хорошо разбираюсь в теме "unittest".Я хотел бы создать модульный тест, чтобы сказать: «Эй, тело, это неправильный (или правильный) ответ, потому что блабла!».Мне нужно провести модульное тестирование, потому что потребовалось 3 недели MF, чтобы выяснить, почему прогноз в модели машинного обучения не сработал!Поэтому я хочу избежать ошибок такого типа в будущем.

Вопросы:

  1. Как я могу попросить код предупредить меня, когда len(X) - len(pred_values)не равно num_step?
  2. Нужно ли создавать файл модульных тестов для сбора всех модульных тестов, например unittest.py?
  3. Нужно ли размещать модульные тесты вдали отосновной код?

1 Ответ

0 голосов
/ 14 ноября 2018

1. Тестовый код может предупредить вас с помощью утверждения. В своем тесте вы можете использовать self.assertEqual()

self.assertEqual(len(X) - len(pred_values), num_step)

2. Да, вы обычно собираете свои TestCase классы в модуле с префиксом test_. Поэтому, если тестируемый код находится в модуле с именем foo.py, вы поместите свои тесты в test_foo.py. В test_foo.py вы можете создать несколько TestCase классов, которые объединяют связанные тесты.

3. Хорошая идея отделить тесты от основного кода, хотя и не обязательно. Причины, по которым вы можете захотеть разделить тесты, включают (как указано в документации):

  • Тестовый модуль можно запустить автономно из командной строки.
  • Тестовый код легче отделить от поставляемого кода.
  • Меньше искушений изменить тестовый код, чтобы он соответствовал тестируемому коду без веской причины.
  • Тестовый код следует изменять гораздо реже, чем код, который он тестирует.
  • Протестированный код может быть реорганизован легче.
  • Тесты для модулей, написанных на C, в любом случае должны быть в отдельных модулях, так почему бы не быть последовательными?
  • Если стратегия тестирования изменяется, нет необходимости менять исходный код.

Много дополнительной информации в официальных документах .

...