使用模拟类进行单元测试

时间:2015-03-17 19:49:18

标签: unit-testing testing junit mocking mockito

我看过的一些网站指出,当你(开发人员)正在实现你的类(X)时,它依赖于另一个类(Y)来获取信息,并假设你的开发团队尚未开发类(Y) ,然后在你的单元测试类(X)中你应该模拟类(Y)。

我想知道的是,当最终的课程(Y)由开发团队实施时,您应该做些什么?类(X)的开发人员现在是否必须返回单元测试,他/她创建了类(Y)的模拟并调用真实对象?

如果我们将实际的开发时间表放入透视类(X)可能已经在类(Y)之前一个月或更长时间实现,并且类(X)的开发人员也编写了类的单元测试(X) )可能已经转移到分配给他/她的其他任务;这个人现在如何分配时间回去重新投入时间来重写他们的旧单元测试 - 这不仅仅是一场管理噩梦?

1 个答案:

答案 0 :(得分:2)

所以,我会说你在测试中实现了更好的分离和独立性,如果你只是将模拟放入 - 你可以用这种方式进行真正的单元测试,而如果你用实际的实例替换模拟然后,您正在创建集成测试。这真是两派思想,mockist vs. classical。就个人而言,我更喜欢模仿风格,并且我很自在地知道我的测试对变化更具弹性,因为我这样写它们。如果我做了更多的经典样式测试,那么测试失败会有更多的原因(可能是我的测试主题依赖于行为的任何底层实现的变化),并且当测试失败时,它会更少明确究竟是什么导致了失败。