我对“ unittest”主题不太满意。我想创建一个单元测试,以便说“嘿,这是错误的(或正确的)答案,因为blabla!”。我需要进行一次单元测试,因为花了3 MF周才能找到为什么机器学习模型中的预测不起作用!因此,我希望将来避免此类错误。
问题:
len(X) - len(pred_values)
不等于num_step
时,如何要求代码提醒我?unittest.py
?答案 0 :(得分:1)
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语言编写的模块的测试必须位于单独的模块中,所以为什么不一致?
- 如果测试策略发生变化,则无需更改源代码。
在official docs中提供了更多信息。