EasyMock 3.0文档(http://www.easymock.org/EasyMock3_0_Documentation.html)声称它是,但没有解释为什么(强调我的):
有时您可能只需要模拟某个类的某些方法并保留 他人的正常行为。 这通常发生在您想要时 测试一个方法,在同一个类中调用其他人。所以你想要 保持测试方法的正常行为并嘲笑其他方法。
在这种情况下,首先要做的是考虑重构 大部分时间这个问题都是由糟糕的设计引起的。
那么,这是正确的吗?为什么?
答案 0 :(得分:2)
问题不在于调用自己的方法,而是模拟这些调用的必要性表明了另一个问题。否则,您可以只测试公共方法并验证其行为。您不应该关心一个人调用的其他方法,而只关心可观察的行为。
答案 1 :(得分:1)
一如既往,这取决于。
方法一直调用其他方法;这是(IMO正确)重构的自然结果,将其他方法切割成大小。对我来说,问题就是你 来嘲笑那些微小的正确方法而不能在没有这样做的情况下进行测试。
如果有很多小方法,它们可能更适合包装在某种类型的协作者类中,此时你会嘲笑协作者,而不是内部方法。
此外,这些小内部方法可能是私有方法,其测试是一个争论的主题。