addCleanup 与拆解
addCleanup vs tearDown
最近,Ned Batchelder 在 his talk at PyCon 2016 期间指出:
If you are using unittest
to write your tests, definitely use
addCleanup
, it's much better than tearDown
.
到现在为止,我从来没有用过addCleanup()
,习惯了setUp()
/tearDown()
一对测试方法"set up"和"tear down"阶段。
为什么我应该切换到 addCleanup()
而不是 tearDown()
?
最近在 Python unittest with Robert Collins 播客中也对此进行了讨论。
Cleanup items are called even if setUp fails (unlike tearDown)
addCleanup
可以用来注册多个函数,所以你可以使用
为您希望清理的每个资源提供单独的功能。那会让你的
代码要多一点reusable/modular.
addCleanup()
方法将 运行 即使其中一个失败,并且将 运行 即使 setUp()
失败。您还应该考虑使用 pytest.
addCleanup
的另一个好处是它的工作方式与您预期的一样。
比如你在setUp
函数中调用,那么所有的测试方法最后都会调用cleanup函数
如果在测试方法中调用,只有该方法调用清理函数。
最近,Ned Batchelder 在 his talk at PyCon 2016 期间指出:
If you are using
unittest
to write your tests, definitely useaddCleanup
, it's much better thantearDown
.
到现在为止,我从来没有用过addCleanup()
,习惯了setUp()
/tearDown()
一对测试方法"set up"和"tear down"阶段。
为什么我应该切换到 addCleanup()
而不是 tearDown()
?
最近在 Python unittest with Robert Collins 播客中也对此进行了讨论。
Cleanup items are called even if setUp fails (unlike tearDown)
addCleanup
可以用来注册多个函数,所以你可以使用
为您希望清理的每个资源提供单独的功能。那会让你的
代码要多一点reusable/modular.
addCleanup()
方法将 运行 即使其中一个失败,并且将 运行 即使 setUp()
失败。您还应该考虑使用 pytest.
addCleanup
的另一个好处是它的工作方式与您预期的一样。
比如你在setUp
函数中调用,那么所有的测试方法最后都会调用cleanup函数
如果在测试方法中调用,只有该方法调用清理函数。