带存根的单元测试类。我应该配置存根以返回ALWAYS正确的值吗?

时间:2012-01-08 11:28:48

标签: unit-testing stubs

这是我关于单元测试的一个问题。

我正在阅读单元测试的艺术,在第3章中,作者展示了如何删除一个或多个类之间的依赖关系。这对我来说似乎很清楚。不完全清楚的是以下几点。

当我使用存根配置测试方法时,我将其配置为返回特定值。然后我调用测试类暴露的测试方法。此方法执行一些逻辑并使用存根的返回值。问题是:如果存根配置为返回错误的值,我的测试可能会失败。

所以问题是:当我使用存根时,我是否应该总是将它们配置为返回预期值?在我看来,这应该是正确的测试方法,就好像存根总是返回预期的值我确定只测试测试方法中的逻辑。

您如何看待这个?是否有某种情况有某种意义迫使存根返回不正确的值?

非常感谢, 马可

2 个答案:

答案 0 :(得分:2)

您正在测试sut(被测系统)在几种情况下如何工作:

  • 好路径=配置存根以返回良好值并测试sut的行为相应
  • 悲伤路径=使用错误的值配置存根并验证sut可以处理这种情况(例如,您可以测试它是否会抛出异常ExpectedException属性,如果您使用的是nUnit)

答案 1 :(得分:1)

您可以将存根方法配置为在某些情况下根据测试设置返回值。在其他人返回默认值,这应该是有效的。