我试图模拟一些maven课程。
我知道我可以模拟一个接口或带有地图的类
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。我在这里做错了什么?
答案 0 :(得分:8)
只要你可以使用Groovy Map强制进行模拟而不是框架,这种事情对你有用:
def fooMock = [ bar: { baz, thing -> 42 } ] as Foo
现在fooMock.bar("arg1", "arg2")
将返回42。