我对unittests
感到有些困惑。我有一个嵌入式系统,我在外面用Python测试。
问题是每次测试通过后我都需要重置系统状态。但是,如果测试失败,它可能会使系统处于我需要重置的任意状态。每次测试后,我都会回到初始状态,但如果断言失败,它将跳过该部分。
因此,处理这种情况的正确方法是什么?我的一些想法是:
try
,catch
,finally
中,但这看起来不对(unittest
已经处理了测试异常)。tearDown()
方法initSystemState()
以返回到初始状态(但它比仅重置测试结束时需要重置的内容要慢)有什么建议吗?理想情况下,如果我进行testSpeed()
测试,最后应该调用testSpeedOnStop()
函数。也许unittest
不是这项工作的正确工具,因为所有功能都有副作用并且正在协同工作,所以也许我应该更倾向于集成测试库,而这些库我还没有探索过。
答案 0 :(得分:0)
设置状态在测试类的setUp(self)
方法中完成。
此方法在每次测试之前自动调用 ,并为每个测试实例提供一个新状态。
每次测试后,运行tearDown
方法可能会清除失败测试的残余。
你可以在所有测试之后编写一个setUp / tearDowm
来执行befora;更精细的测试可能需要构建存根或模拟对象。