当前位置: 首页 > 知识库问答 >
问题:

莫基托。验证方法是否包含布尔值和参数捕获器

汪永春
2023-03-14

我不知道如何使用Mockito。在这种情况下验证。我怎样才能把false传给Mockito。验证我尝试了两种不同的方法,但都不起作用。

public Sample someMethod(Sample s, boolean a){....}
@Test
public void test() {
...
verify(mock).someMethod(sampleCaptor.capture(), false));
verify(mock).someMethod(sampleCaptor.capture(), org.mockito.Matchers.eq(false)));
...
}

共有1个答案

王宜
2023-03-14

你有它的权利第二种方式:

verify(mock).someMethod(sampleCaptor.capture(), Matchers.eq(false));

当使用匹配器(包括ArgumentCaptor.capture)时,必须为每个值使用匹配器,因为匹配器通过副作用工作。

如果上述方法不起作用,您可能在方法的前面错误使用了匹配器。有时显式调用Mockito是有帮助的。在调用verify之前立即验证MockitoUsage(),以确保Mockito的内部状态没有问题。(关于它如何“不起作用”的附加信息,包括一个最小的可复制示例,可能有助于解决您的具体案例。)

 类似资料:
  • 问题内容: 我有一个的条目: 目前,我正在检查它是否包含真像这样: 这是检查布尔数组的 最快 方法吗?如果不是,执行此检查的最快方法是什么? 编辑: 通过在Android 4.03 Samsung S2设备上将其作为应用程序运行,我对您的答案中的方法进行了计时,如下所示: 在五次跑步中的时间排名最高,排名第一: 在5334和11584 ns之间: } return false; 在160542和1

  • 我有一个较大的代码库,包含许多装饰器类,它们通常将除一个方法外的所有方法委托给一个委托对象,例如: 现在,我正在使用Junit 5为这些包装创建单元测试,调用上的每个方法,并希望验证包装委托上是否有调用,这是一个Mockito mock。 以下是我目前的代码: 当我运行这个,我得到的错误是: 我是否做错了什么,或者如果您不知道确切的方法,是否无法验证方法调用?

  • 我试图使用ValidateSet和一个布尔参数,但我无法使它像预期的那样工作。 复制该问题的示例: 我尝试将ValidateSet更改为,选项卡完成按预期工作,但是参数验证仍然失败,因为参数需要字符串和。 我可以将ValidateSet更改为并使其按我所期望的方式运行,但我发现对于完成布尔参数而言,和的用户体验比和要差。 当选择时,函数的预期输出应为;当选择时,函数的预期输出应为。 我在代码中实现

  • Mockito似乎是一个非常好的Java存根/模拟框架。唯一的问题是我找不到任何关于使用API的最佳方法的具体文档。测试中使用的常用方法包括: 当您在实践中看到Mockito的示例时,您会看到如下代码: 从我读过的所有文档中,我已经识别了几个Mockito“语法”的“模式”,这些“语法”是通过将这些方法调用像上面的示例一样链接在一起而获得的。我发现的一些常见模式有: 当/然后:当(你的方法())。

  • 检查给定的参数是否是一个原生的布尔值。 使用 typeof 来检查一个值是否为一个布尔值。 const isBoolean = val => typeof val === 'boolean'; isBoolean(null); // false isBoolean(false); // true

  • 我想实现一个基于布尔模板参数的私有函数。大概是这样的: 但是上面的程序没有编译:错误:“struct std::enable_if”void funInternal(int a,typename std::enable_if::type*=0)中没有名为“type”的类型。 是否可以使用enable_if实现所需的行为?