我正在使用Groovy MockFor类来测试这样的smth。
我有一个带public AClass aMethod()
的AClass,它必须返回一些AClass实例。 (相同或不同,它没关系。)在我的模拟类中,我想返回完全相同的代理实例,以便进行正确和简单的验证检查。
但是找不到办法做到这一点。
MockFor mock = new MockFor(AClass)
mock.demand.aMethod { ... ->
log.info("aMethod was called!")
// Here I want to return same mock proxy instance!
return //<this???>
}
def instance = mock.proxyDelegateInstance()
instance = instance.aMethod(...) // Call to demanded method. In AClass aMethod returns AClass instance!
// so, I will be able to demand aMethod multiple times, and then ask
mock.verify(instance) // Will check, how many times method was called for same instance.
我认为,我可以设置封闭委托,然后要求它,但它看起来不是一个好的解决方案。
所以,我要求提供建议。
答案 0 :(得分:0)
也许这个?
def mock = new MockFor( AClass )
def instance
mock.demand.aMethod { a ->
println "Mocked $a"
instance
}
instance = mock.proxyDelegateInstance()
instance = instance.aMethod( 'woo' )