def foo
a & b & c & d
end
这对应用程序逻辑非常重要,所以我必须为它编写好的测试。方法a,b,c,d已经过测试。我是否应该准备完整的数据来使a,b,c,d工作并返回请求的值,或者在这种情况下是否存在stub?
答案 0 :(得分:1)
单元测试应该只测试被测方法,即foo。这意味着,你应该存根a,b,c和d。
为了使它有用,你应该确保覆盖那些可能由这些方法的返回值引起的极端情况。
答案 1 :(得分:1)
如果你真的想彻底测试一下,我会写两种自动测试:单元测试,它会接收a,b,c和d作为存根,以及集成测试,这将确保所有逻辑一起工作良好,并且没有集成问题。
答案 2 :(得分:1)
我很感激您希望彻底测试,但使用存根进行单元测试只能测试&
运算符是否正常工作。该运算符不是您的代码。
如果使用模拟而不是存根,它至少会测试所有方法都被调用,但这实际上只是一种文档测试。
然而,使用数据的集成测试可能很有用。