我试图模拟一些 Maven 类。
我知道我可以用映射模拟一个接口(interface)或一个类
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 Map 强制而不是框架进行模拟,这种事情就适合您:
def fooMock = [ bar: { baz, thing -> 42 } ] as Foo
现在 fooMock.bar("arg1", "arg2")
将返回 42。
关于testing - 带参数的 Groovy 模拟方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9722728/