单元测试:我应该测试我的假物体吗?

时间:2016-04-03 19:59:40

标签: unit-testing tdd

伪造的对象(以及一般的所有测试双打)用于协助单元测试,但是因为它们包含代码,所以会出现问题 - 它们是否应该进行测试?

一方面,它们毕竟是代码所以应该进行测试,另一方面,它不是生产代码,所以测试它似乎不太重要。

我尝试为假对象编写测试,因为它通常不需要花费太多时间并且可以节省更多时间调试,但这些测试对我来说仍然很奇怪。

假对象我的意思是Gerard Meszaros definition

  

假对象是一种更简单,更轻量级的实现   DOC提供的功能没有副作用我们   选择不做。

3 个答案:

答案 0 :(得分:1)

即使假货不是生产代码,你应该测试它,因为你的测试取决于假货的正确执行,如果假货不能正常工作那么测试。我认为任何包含proyect中某些逻辑的函数都应该进行测试,即使它不是生产代码。

答案 1 :(得分:0)

您应该测试系统是否满足要求。完全测试一切都是不可能的。

虚假对象的想法只是为类实例提供静态数据,以便您可以检查此特定值会发生什么。

进行集成测试是个好主意,您可以在其中检查系统如何处理所有类。如果出现问题,您的单元测试可能会更具体地说明问题究竟在哪里。

如果你想测试你的测试 - 这个演示可能会让你有更好的想法 - http://www.infoq.com/presentations/kill-better-test

答案 2 :(得分:0)

一个组件可以依赖于其他组件,因此要对一个组件进行单元测试,即伪造“被测组件”依赖的其他组件,这绝对没问题。因为单元测试表示要单独测试组件,而不是与其他协作组件集成。

其次,您应该拥有协作组件的生产版本,您正在伪造当前组件的单元测试。在这种情况下,您还应该对每个协作组件的生产版本进行单元测试,在这种情况下您已伪造。

因此,基本规则是,如果您单独或单独地对每个组件进行适当的单元测试,那么当它们集成时,它们应该可以工作。但是,如果您想要一起测试组件,那将称为集成测试。