你如何模拟 GroovyTestCase 中的方法?
How do you mock a method in GroovyTestCase?
我一直试图通过 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)
你应该使用:
stubMethod2.ignore('method2')
比:
stubMethod2.ignore.method2
能否说明一下您想要实现的目标?
顺便说一句:我建议使用 spock 而不是 groovy 内置测试。
我一直试图通过 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)
你应该使用:
stubMethod2.ignore('method2')
比:
stubMethod2.ignore.method2
能否说明一下您想要实现的目标?
顺便说一句:我建议使用 spock 而不是 groovy 内置测试。