带参数的Groovy模拟方法

问题描述:

我试图模拟一些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。我在这里做错了什么?

只要你使用Groovy地图胁迫的嘲讽,而不是一个框架就好了,这种事情会为你工作:

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

现在fooMock.bar("arg1", "arg2")将返回42

+0

谢谢!太简单了... – 2012-03-16 08:08:32