在 Mockito 中验证按名称参数 [英] Verifying by-name parameters in Mockito

查看:57
本文介绍了在 Mockito 中验证按名称参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给定

class UnderTest {
    def f(arg1: Int)(arg2: => Int) = ???
}

尝试这样做:

import org.mockito.Matchers
val objUnderTest = mock[UnderTest]
verify(objUnderTest).f(Matchers.eq(1))(Matchers.any())

失败并显示参数匹配器的无效使用!"异常,抱怨预期有 2 个匹配器,但记录了 1 个.

fails with an "Invalid use of argument matchers!" exception, complaining that 2 matchers were expected, 1 was recorded.

是否可以使用 Mockito 来验证对具有多个参数列表(包括按名称参数)的函数的调用?

Is using Mockito to verify calls to functions with multiple argument lists including by-name parameters possible?

推荐答案

据我所知,你不能用 Mockito 模拟 byname 参数.我已经在 specs2 中完成了它,但这需要覆盖一些 Mockito 类,这使得它成为可能,但它是一个丑陋的解决方案.

To my knowledge you can not mock byname parameters with Mockito. I've done it in specs2 but that requires to override some of the Mockito classes, which makes it possible but it is an ugly solution.

这篇关于在 Mockito 中验证按名称参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆