我一直试图弄清楚通过groovy测试教程进行存根和嘲弄无济于事。我试图在这个方法上存根(或模拟,我不太确定术语),但是我无法弄清楚如何实际获得正确的语法。我将不胜感激。我正在使用groovy 2.4.5
public class foo {
public static void main(String[] args){
method1();
}
public static void method1(){
//do stuff
Object baz = new Object();
method2(baz);
}
public static void method2(Object baz){
//do stuff
}
}
class FooTest extends groovy.util.GroovyTestCase {
void testMainLoop(){
def stubMethod2 = new StubFor(foo);
stubMethod2.ignore.method2
stubMethod2.use {
foo.method1();
}
}
}
此代码抛出错误:
groovy.lang.MissingPropertyException: No such property: method2 for class: groovy.mock.interceptor.Ignore
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53)
at org.codehaus.groovy.runtime.callsite.GetEffectivePogoPropertySite.getProperty(GetEffectivePogoPropertySite.java:87)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:296)
at fooTest.testMainLoop(fooTest.groovy:14)
答案 0 :(得分:1)
你应该使用:
stubMethod2.ignore('method2')
比:
stubMethod2.ignore.method2
您能澄清一下您想要达到的目标吗?
BTW:我建议使用spock而不是groovy内置测试。