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

如何编写复合Hamcrest语句(带有逻辑“或”操作)

公孙河
2023-03-14

如何使用Hamcrest编写以下JUnit断言?

assertTrue(var1 == 5 || var2 == 10);

我不能使用anyOf()匹配器包装器,因为我不需要多个匹配器,我需要多个语句,每个变量一个var1var2

共有1个答案

麻宜春
2023-03-14

您可以通过将变量转换为单个复合对象来将其编写为单个Hamcrest断言:

assertThat(ImmutableList.of(var1, var2),
    either(contains(is(5), anything()))
    .or(contains(anything(), is(10))));

我认为,这并不容易理解,也无助于解释这意味着什么以及为什么这代表着成功。

 类似资料:
  • 有人知道为什么这个循环总是针对不同于1或0的值,以及如何避免在输入字符时出现无休止的循环吗? }

  • 问题内容: 最近,我被介绍了node.js以及一些很酷的包,例如express和jade。我有几个问题经常会敲门: 如果选择node.js构建下一个网站,我将使用JavaScript编写服务器端复杂的逻辑吗?但我认为您无法将JavaScript与Java或Python进行比较来编写服务器端代码,因为它们拥有如此众多的库。node.js是真的吗?还是我错过了什么? 我可以从node.js调用Java

  • 在Java(Eclipse)中,当有一个语句,如时,它最终会为true,但问题是,如果第一个语句为真,编译器会评估第二个语句吗?这对我来说很重要,因为如果变量为 null 或具有某个值,我需要执行一个操作。我的语句看起来像

  • 语句和逻辑结构 #include <stdio.h> #include <stdlib.h> #include <Windows.h> //01.杂乱知识点: // 1.内存分配函数malloc(); // (1).分配单位:字节 // (2).分配方式: // 鲸吞+慢咽 // 2.内存分配注意事项: // 32位的单个进程一口气对多开辟2G

  • 问题内容: 我想使用 AND OR 获取所有文档。 我写错了这个逻辑吗? 为什么我的查询返回0个结果? 注意 :我可以接受查询或过滤器来解决此问题。 这些是一些示例文档: 询问 问题答案: 您无法获得结果的主要原因是因为您试图对进行过滤,这是一个已分析的字段。如果要对该字段进行匹配,则需要更新类型映射以将该字段设置为。请参见以下示例映射: 从此处开始阅读有关映射的信息:http : //www.e