这似乎是一个 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/