作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从具有 2 个重载的 gradle 类中 stub 一个 void 方法,并且 mockito 匹配器与 wearg 方法匹配,而我的 stub 失败了。这是我到目前为止所拥有的:
doAnswer(new Answer<Void>() {
@Override
Void answer(final InvocationOnMock invocation) throws Throwable {
Closure clo = invocation.arguments[0] as Closure
clo.run()
return null
}
}).when(mProject).afterEvaluate(any(Closure.class))
public abstract void org.gradle.api.Project.afterEvaluate(org.gradle.api.Action)
而不是
public abstract void org.gradle.api.Project.afterEvaluate(groovy.lang.Closure)
any(Closure.class)
是什么意思matcher 确实广告它只是返回一个空值。假设 Actor 应该调用正确的方法,但由于某种原因它没有使用正确的方法注册。
最佳答案
好的,我发现了另一个问题 Unexpected behavior with overloaded methods
显然是 groovy 的错,因为我必须将 null 转换为正确的类型,即使 any(Closure.class)
方法已经返回正确的类型。像这样:
doAnswer(new Answer<Void>() {
@Override
Void answer(final InvocationOnMock invocation) throws Throwable {
Closure clo = invocation.arguments[0] as Closure
clo.run()
return null
}
}).when(mProject).afterEvaluate(any(Closure.class) as Closure)
关于groovy - 使用重载方法模拟任何不适用于 doAnswer 的匹配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25857019/
我是一名优秀的程序员,十分优秀!