我有两个班级:
class Foo {
String doSomething(String a = 'Not working') {
return a
}
}
我想在测试中替换“doSomething”,但它不起作用
@Test
void testMethodIWannaTest() {
Foo.metaClass.doSomething = {String a -> return 'Working'}
assert new Foo().doSomething() == 'Working' //THIS TEST FAIL, return 'Not Working'
}
如果我删除可选参数,它会起作用。
有人知道如何解决这个问题吗?
*我知道测试并没有真正的意义,这只是为了表明我的观点
我做错了什么?不使用 'mockFor' 是否可以做到这一点?