setUpClass
课程中setUpTestData
,setUp
和TestCase
之间有什么区别?
更具体地说,每个用例的用例是什么?
到目前为止我所理解的是:
从我上面提到的理解,似乎setUpTestData位于setUpClass和setUp之间的区域。为什么我们需要setuUpTestData的类级方法,而setUpClass
或setUp
或两者的组合可以实现相同的效果?
答案 0 :(得分:15)
setUpClass
用于执行类范围的初始化/配置(例如,创建连接,加载webdrivers)。例如,当使用setUpClass
打开数据库连接/会话时,您可以使用tearDownClass
关闭它们。setUpClass
一次。类似地,在所有测试运行后调用tearDownClass
。文档说明:
SimpleTestCase及其子类(例如TestCase,...)依赖于setUpClass()和tearDownClass()来执行某些类范围的初始化(例如覆盖设置)。如果您需要覆盖这些方法,请不要忘记调用超级实现:
setUpTestData
用于为每个TestCase创建初始测试数据。 TestCase.setUpClass()(src)setUpTestData
被调用一次,如documentation中所述。如果数据库不支持事务,则在每次测试运行之前将调用setUpTestData
(感谢@Alasdair纠正我)setUp
将在每次测试运行之前调用,并应用于为每次测试运行准备测试数据集。使用setUpTestData
可以提高测试性能,请注意测试中对此数据的更改将在不同的测试运行之间保持不变。如果需要重新加载,可以使用setUp
方法完成。
如果用于运行测试的数据库不支持事务,则会取消性能改进(因为在每次测试运行之前将调用setUpTestData
)