有没有更好的方法来编写jUnit测试用例?
String x = "foo bar";
Assert.assertTrue(x.contains("foo"));
public class StringMatchers {
public static Matcher<String> contains(String expected) {
return new BaseMatcher<String>() {
@Override
public boolean matches(Object actual) {
String act = (String) actual;
return act.contains(expected);
}
@Override
public void describeTo(Description desc) {
desc.appendText("should contain ").appendValue(expected);
}
};
}
}
然后,您可以使用import static <package>.StringMatchers.contains
将其导入其他测试文件。这将使您得到以下语句:
assertThat(x, contains(y));
附注:这与其他库非常相似,因此如果它们实现得非常不同,我会感到惊讶。
源代码:https://programmingideaswithjake.wordpress.com/2014/11/08/advanced-creation-of-hamcrest-matchers/ **并非所有内容都有效!
我在这个页面上尝试了许多答案,但都没有真正起作用:
所以,我决定使用问题中提到的简单而可行的方法,而不是编写可读性强的代码。
希望能出现另一种解决方案。
Assert.assertTrue("应该包含子字符串 'foo'", x.contains("foo"));
。 - rook218