单元测试究竟应该独立吗?在单元测试套件的“之前”部分应该做什么?
比如说,我正在测试服务器的功能 - 如果服务器被创建,初始化,连接到它的各种数据源,& c。在每个测试用例的主体内部。是否有可能适合初始化服务器一次,然后测试多个案例。
我正在考虑的其他情况是移动应用测试 - 需要创建手机对象以执行单元测试。是否应该每时间完成。创建手机,初始化,运行测试,销毁手机,重复?
答案 0 :(得分:4)
单元测试应该是完全独立的,即每个单元测试应该能够以任何顺序运行,因此每个单元测试都需要有自己的初始化步骤。
现在,如果您正在谈论服务器或手机初始化,它听起来更像是集成测试而不是单元测试。
答案 1 :(得分:2)
理想情况下是的。每个测试都应该从头开始,并在执行被测功能之前将系统置于特定的良好定义状态。如果你不这样做,那么当测试失败时你就更难以隔离问题。更糟糕的是,由于早期测试留下了一些额外的状态,您可能会导致测试失败。
如果你的设置时间太长,你可以模拟或存根一些辅助对象。
如果您担心设置代码过多,可以将设置代码重构为可重用的功能。