Unit testing 关于存根法与其他方法组合的问题

Unit testing 关于存根法与其他方法组合的问题,unit-testing,testing,mocking,stubbing,Unit Testing,Testing,Mocking,Stubbing,它对于应用程序逻辑非常重要,所以我必须为它编写良好的测试。方法a、b、c、d已经过测试。我是否应该准备完整的数据以使a、b、c、d工作并返回请求的值,或者在这种情况下存根是不正确的?单元测试应该只测试被测试的方法,即foo。这意味着,您应该使用存根a、b、c和d。 为了使它发挥任何作用,您应该确保覆盖了那些方法的返回值可能导致的所有极端情况。如果您真的想彻底测试它,我将编写两种自动测试:a单元测试,它将接收a、b、c和d作为存根,还有一个集成测试,可以确保所有逻辑都能很好地协同工作,并且没有集成

它对于应用程序逻辑非常重要,所以我必须为它编写良好的测试。方法a、b、c、d已经过测试。我是否应该准备完整的数据以使a、b、c、d工作并返回请求的值,或者在这种情况下存根是不正确的?

单元测试应该只测试被测试的方法,即foo。这意味着,您应该使用存根a、b、c和d。

为了使它发挥任何作用,您应该确保覆盖了那些方法的返回值可能导致的所有极端情况。

如果您真的想彻底测试它,我将编写两种自动测试:a单元测试,它将接收a、b、c和d作为存根,还有一个集成测试,可以确保所有逻辑都能很好地协同工作,并且没有集成问题。

我很感激您希望进行彻底的测试,但是使用存根的单元测试只能测试
操作符是否正常工作。那个操作员不是你的代码

如果您使用mock而不是stub,它至少可以测试所有方法是否都被调用,但这实际上只是一种文档测试


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

我认为,foo并不像这里所示的那么简单。如果是这样,它就不会“对应用程序逻辑非常重要”。但如果是这么简单,我同意你。。。
   def foo
     a & b & c & d
   end