为了理解 JUnit,我编写了以下代码。我特别对assertThat()方法感兴趣。
package test;
public class Equals {
private String x ;
public Equals(String a){
this.x = a;
}
public Equals equals(Equals x ){
return x;
}
}
然后我创建一个测试类来测试 equals() 方法。
package test;
import static org.junit.Assert.*;
import org.hamcrest.Matcher;
import org.junit.Test;
public class EqualsTest {
@Test
public void testEquals() {
Equals t1 = new Equals("test");
assertThat(t1, t1.equals("test"));
}
}
Eclipse 用红色强调了assertThat 并建议:创建方法assertThat(Equals, boolean)。
其他断言方法,如assertEquals()等都非常简单,但这个对我来说不太直观。我不明白这个。请帮忙。
致以最诚挚的问候,
此方法必须使用一些匹配器,而不是布尔值。
例如,您可以使用
is
匹配器来达到您的目的:
assertThat("this string", is("this string"));
看看这个:http://tutorials.jenkov.com/java-unit-testing/matchers.html
assertThat
是 Hamcrest 断言库的一部分。请查看 Hamcrest 的网站:http://hamcrest.org/JavaHamcrest/
JUnit 的最新版本现在包含 hamcrest。
事实上, org.junit.Assert.assertThat 的方法签名是
public static <T> void assertThat(T actual,
org.hamcrest.Matcher<T> matcher)
你可以用这个方法,
assertThat(t1, equalTo("test"));