【问题标题】:Groovy mock method with parameters带参数的 Groovy 模拟方法
【发布时间】:2012-03-15 15:18:11
【问题描述】:

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

【问题讨论】:

    标签: testing groovy mocking


    【解决方案1】:

    只要你可以使用 Groovy Map coercion 来模拟而不是框架,这种东西就可以为你工作:

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

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

    【讨论】:

      猜你喜欢
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      • 2014-02-09
      • 1970-01-01
      相关资源
      最近更新 更多