当我测试一个方法时,我相信其他方法有效吗?

时间:2011-02-16 17:57:31

标签: unit-testing

如果我是单元测试方法A并且我在我的测试中使用了许多其他方法(或属性获取器)来检查它的行为(在这种情况下我没有使用模拟),那么相信它是一种好习惯吗那些其他方法是否正常工作,并假设如果不这样做,它们会在这些方法的测试中被捕获?

3 个答案:

答案 0 :(得分:2)

简而言之,是的。

单元测试的本质是你要验证一些原子“单元”代码在一系列已知情况下产生正确的结果。试验应该像在真空中一样进行;应该欺骗您的单位所依赖的任何代码(通常通过模拟)以产生预期的输入。这些依赖项还应该有自己的单元测试,以验证它们是否会在相同的情况下为其家属产生那些预期的输入。

答案 1 :(得分:1)

是的,您应该只测试一个方法/单位。例如,TestNG鼓励您通过允许定义测试依赖性来做出这样的假设。如果您测试依赖于方法foo()的方法bar(),请使您的测试依赖于测试bar()的方法。如果bar()测试失败,则foo()的测试甚至不会运行。

此假设的缺点(当您无法定义测试依赖项时)是当bar()方法被破坏时,foo()bar()的测试都将失败,使找到问题的根本原因变得更加困难。

答案 2 :(得分:0)

如果你真的不信任其他方法,那么你应该为这些方法编写单元测试。即使糟糕的方法导致您的单元测试失败,它也将无法通过自己的单元测试,这将导致程序员修复正确的错误。

相关问题