Groovy MockFor需求实例方法。归还这个

时间:2013-11-21 14:22:29

标签: unit-testing groovy delegates mocking this

我正在使用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.

我认为,我可以设置封闭委托,然后要求它,但它看起来不是一个好的解决方案。

所以,我要求提供建议。

1 个答案:

答案 0 :(得分:0)

也许这个?

def mock = new MockFor( AClass )
def instance

mock.demand.aMethod { a ->
    println "Mocked $a"
    instance
}

instance = mock.proxyDelegateInstance()
instance = instance.aMethod( 'woo' )