java - Junit 如何检查字符串是否等于两个字符串之一?

标签 java junit

这似乎是一个 super 简单的问题,但我就是想不通。

我只是想断言一个字符串等于“string1”或“string2”。

这是我尝试过的方法,但显然都行不通。

assertEquals(d.getFormType(), "string1") || assertEquals(d.getFormType(), "string2");

assertEquals(d.getFormType(), "string1" || "string2");

最佳答案

我建议您使用 Hamcrest 匹配器。它们通过 assertThat() 集成到 JUnit 中,但您需要下载并安装 hamcrest-all.jar也是。

使用 Hamcrest,您可以像这样解决您的问题:

import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;

assertThat(d.getFormType(), isOneOf("string1", "string2"));

如果您无法安装 Hamcrest,另一种选择是使用正则表达式:

assertTrue(d.getFormType().matches("(string1|string2)"));

这比组合两个 equals() 语句更短,而且可以说更具可读性:

String actual = d.getFormType();
assertTrue("string1".equals(actual) || "string2".equals(actual));

关于java - Junit 如何检查字符串是否等于两个字符串之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12729280/

相关文章:

java - Arrays.sort() 与排序算法

java - 如何让 IntelliJ 的 GUI 构建器设置组件名称

java - getResources().getColor 在自定义 View 中不起作用

java - Spring - 从 JUnit 和 Maven 运行时的不同测试结果

html - 如何在 Jenkins/JUNIT xml 中的 <system-out> 或 <failure> 标签中添加 href 链接

java - JAR 不在类路径上,强制类加载器从中读取文件

java - 如何使用 "Spring Data JPA"规范进行单元测试方法

java - '非法状态异常 : missing behavior definition for preceeding method call' even though behavior is defined

java - 运行集成测试时嵌入 MongoDB

java - 在第一次测试失败时中断测试类