def foo
a & b & c & d
end
而且它对于应用程序逻辑非常重要,所以我必须为它编写好的测试。方法 a、b、c、d 已经过测试。我应该准备完整的数据以使 a、b、c、d 工作并返回请求的值,还是在这种情况下存根就足够了?
def foo
a & b & c & d
end
而且它对于应用程序逻辑非常重要,所以我必须为它编写好的测试。方法 a、b、c、d 已经过测试。我应该准备完整的数据以使 a、b、c、d 工作并返回请求的值,还是在这种情况下存根就足够了?
如果你真的想彻底测试,我会编写两种自动测试:一种接收 a、b、c 和 d 作为存根的单元测试,以及一种确保所有逻辑一起工作的集成测试。没有集成问题。
我很欣赏您希望彻底测试的愿望,但是使用存根对此进行单元测试只会测试&
操作员是否正常工作。该运算符不是您的代码。
如果您使用模拟而不是存根,它至少会测试是否调用了所有方法,但这实际上只是一种文档测试。
然而,使用数据的集成测试可能很有用。
单元测试应该只测试被测方法,即 foo。这意味着,您应该存根 a、b、c 和 d。
为了使它有任何用途,您应该确保涵盖所有可能由这些方法的返回值导致的极端情况。