最近,在his talk at PyCon 2016期间,Ned Batchelder指出:
如果您使用
unittest
编写测试,请务必使用addCleanup
,它比tearDown
好得多。
到目前为止,我从未使用addCleanup()
并习惯了setUp()
/ tearDown()
对方法来测试“设置”和“拆除”阶段。
我为什么要切换到addCleanup()
而不是tearDown()
?
最近还在Python unittest with Robert Collins播客中进行了讨论。
答案 0 :(得分:33)
即使setUp失败也会调用清理项目(与tearDown不同)
addCleanup
可用于注册多个函数,因此您可以使用
您希望清理的每个资源的单独功能。那会让你的
代码更可重用/模块化。
答案 1 :(得分:5)
addCleanup()
方法即使其中一个失败也会运行,即使setUp()
失败也会运行。您还应该考虑使用pytest。
答案 2 :(得分:2)
关于addCleanup
的另一个好处是,它只是按照您的预期运作。
例如,如果您在setUp
函数中调用它,那么所有测试方法最终都会调用清理函数。
如果在测试方法中调用它,则只有此方法才会调用清理函数。