2012-03-15 138 views
4

我試圖模擬一些maven類。帶參數的Groovy模擬方法

我知道我可以模擬接口或與地圖

def projectMock = [ getBasedir: { new File("") } ] as MavenProject 

一類,但我怎麼嘲笑接收參數的方法?

我曾嘗試使用 「MockFor」 此:

def artifactFactoryMockContext = new MockFor(ArtifactFactory) 
artifactFactoryMockContext.demand.createArtifact(1) {groupId, artifactId, version, classifier, type -> artifact } 
def artifactFactory = artifactFactoryMockContext.proxyInstance() 

,但我得到一個UnsupportedOperationException。我在這裏做錯了什麼?

回答

8

只要你使用Groovy地圖脅迫的嘲諷,而不是一個框架就好了,這種事情會爲你工作:

def fooMock = [ bar: { baz, thing -> 42 } ] as Foo 

現在fooMock.bar("arg1", "arg2")將返回42

+0

謝謝!太簡單了... – 2012-03-16 08:08:32