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, в любом случае должны быть в отдельных модулях, так почему бы не быть последовательными?
- Если стратегия тестирования изменяется, нет необходимости менять исходный код.
Много дополнительной информации в официальных документах .