我有两个类:Grails的由封闭带有可选参数替代方法
class Foo {
String doSomething(String a = 'Not working') {
return a
}
}
而且我想在一个测试,以取代“DoSomething的”,但它dosent工作
@Test
void testMethodIWannaTest() {
Foo.metaClass.doSomething = {String a -> return 'Working'}
assert new Foo().doSomething() == 'Working' //THIS TEST FAIL, return 'Not Working'
}
如果我删除可选的参数,它的工作原理。
有人知道如何解决这个问题吗?
*我知道测试并没有真正桑斯,它只是表明我的观点
我该怎么办错了吗?是否有可能做到这一点,而不使用'mockFor'?
如果您在使用Groovy <2.0我推荐使用GMock进行这种模拟而不是元编程。目前GMock不适用于Groovy> = 2.0 –