假设我有带有方法的 MyClass 类x()
,y()
并且z()
. 比方说x()
cally()
和y()
call z()
。
所以每次我x()
都测试y()
并被z()
调用。在模拟 MyClass 的依赖关系的情况下,我将不得不模拟内部的依赖关系行为x()
,y()
和z()
.
因此,如果我对方法的测试x()
是testXWhen1()
,我将不得不在每个测试方法中重复对我的依赖项的期望。最后,我有一些代码,其中包含对内部发生的事情的期望,并重复了我的三种测试方法。有什么办法可以避免这种情况吗?testXWhen2()
testXWhen3()
y()
z()
我的一个想法是尝试测试实际的x()
方法,但是嘲笑y()
和z()
. 在那种情况下,我的实例MyClass
应该部分是模拟的,部分是真实的MyClass
。可能吗?
另一个解决方案是对 中的期望严格,但对在and中x()
发生的事情不严格……我想我可以用代替来做到这一点,但这不是我最喜欢的解决方案。y()
z()
@NonStrict
@Mocked