2011-03-31 58 views
1
def foo 
    a & b & c & d 
    end 

对于应用程序逻辑非常重要,所以我必须为它编写好的测试。方法a,b,c,d已经过测试。我是否应该准备完整的数据以使a,b,c,d工作并返回所需的值,或者在这种情况下是否存在残差?关于使用其他方法组成的stubbing方法的问题

回答

1

单元测试应该只测试被测方法,即foo。这意味着,你应该存根a,b,c和d。
要使其具有任何用途,您应该确保覆盖可能由这些方法的返回值导致的所有边角情况。

1

如果你真的想彻底测试这一点,我会写两个各种自动测试:一个单元测试这将收到一个,b,c和d为存根和集成测试将确保所有的逻辑运作良好,没有整合问题。

1

我非常感谢您对透彻测试的渴望,但是使用存根的单元测试只会测试&操作符正常工作。该运算符不是您的代码。

如果使用mocks代替存根,它至少会测试所有的方法被调用,但这实际上只是一种文档测试。

使用数据的集成测试可能会很有用。

+0

我假设,foo并不像这里所示的那么简单。如果是这样,它对于应用程序逻辑将不是“非常重要”。但是,如果这很简单,我会同意你的看法。 – 2011-03-31 10:00:54