如果设置时间不是无关紧要,单元测试必须是独立的吗?

时间:2013-04-29 01:10:54

标签: unit-testing

单元测试究竟应该独立吗?在单元测试套件的“之前”部分应该做什么?

比如说,我正在测试服务器的功能 - 如果服务器被创建,初始化,连接到它的各种数据源,& c。在每个测试用例的主体内部。是否有可能适合初始化服务器一次,然后测试多个案例。

我正在考虑的其他情况是移动应用测试 - 需要创建手机对象以执行单元测试。是否应该时间完成。创建手机,初始化,运行测试,销毁手机,重复?

2 个答案:

答案 0 :(得分:4)

单元测试应该是完全独立的,即每个单元测试应该能够以任何顺序运行,因此每个单元测试都需要有自己的初始化步骤。

现在,如果您正在谈论服务器或手机初始化,它听起来更像是集成测试而不是单元测试。

答案 1 :(得分:2)

理想情况下是的。每个测试都应该从头开始,并在执行被测功能之前将系统置于特定的良好定义状态。如果你不这样做,那么当测试失败时你就更难以隔离问题。更糟糕的是,由于早期测试留下了一些额外的状态,您可能会导致测试失败。

如果你的设置时间太长,你可以模拟或存根一些辅助对象。

如果您担心设置代码过多,可以将设置代码重构为可重用的功能。