2015-10-13 98 views
1

我一直想弄清楚通過groovy測試教程存根和嘲弄無濟於事。我試圖對這個方法進行存根(或者嘲笑,我對術語不太確定),但是我無法弄清楚如何真正獲得正確的語法。我希望得到一些幫助。我使用Groovy 2.4.5您如何模擬GroovyTestCase中的方法?

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

我正在使用的失敗代碼與我在本教程中看到的代碼類似:http://www.groovy-lang.org/testing.html#_mockfor_and_stubfor這就是爲什麼我很困惑 –

回答

1

你還是使用:

stubMethod2.ignore('method2') 

比:

stubMethod2.ignore.method2 
莫非

你請澄清你想達到什麼?

順便說一句:我建議使用spock而不是groovy內置測試。