testing - 带参数的 Groovy 模拟方法

标签 testing groovy mocking

我试图模拟一些 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/

相关文章:

scala - 游戏框架测试。 FakeRequest 总是以空体发送(scala)

groovy - 使用 Groovy 进行选择排序

laravel - 如果您在使用 Laravel 的测试环境中,是否有一种默认情况下模拟 API 请求的方法?

.net - 模拟和验证对包含 Expression<Func<T,bool>> 参数的方法的调用

testing - golang中单元测试的种子随机数

去测试覆盖率无法使用仅测试包构建

java - 如何使用 Helium 从页面中读取文本?

java - 使用 Java 在 Linux 中执行命令并获取输出

java - Spring 数据休息2.6.10 : Find by embedded attributes value via Rest api

Javascript 测试 - 使用 axios 验证授权 header 是否正确