assertThat用法疑问?
我安装了junit4.8.1版本并导入了hamcrest-library-1.3.0RC2.jar,hamcrest-core-1.3.0RC2.jar我程序开头引用im...
我安装了junit4.8.1版本 并导入了hamcrest-library-1.3.0RC2.jar,hamcrest-core-1.3.0RC2.jar我程序开头引用import org.hamcrest.Matcher;import static org.junit.Assert.*;@Test public void SpringAllTest(){ //测试spring数据库连接池 String actualUsername = basicDataSource.getUsername(); //assertEquals("devloper",actualUsername); //测试能通过,但我改成下句形式 assertThat( "devloper", equalTo( actualUsername ) ); //就不能测试通过}//由于上面的测试程序提示,不识别equalTo方法,于是根据下面就自动创建一个private Matcher equalTo(String actualUsername) { // TODO Auto-generated method stub return null;}运行出现错误提示:java.lang.NullPointerExceptionat org.junit.Assert.assertThat(Assert.java:770)at org.junit.Assert.assertThat(Assert.java:736)我不明白为什么assertThat()不能识别equalTo,为什么assertEquals运行测试正确,而assertThat()提示空指针错误assertThat(3,is(1 2)); 这个也不能运行通过private Matcher is(int i) { // TODO Auto-generated method stub return null; }是测试环境没有配置好吗?<a apporig="59250" target="_blank" onclick="javascript:return redirectWrapped(this);" class="thirdAppLink" href="http://www.004.la/forum.php?mod=redirect
展开
展开全部
好大一坨啊!但是硬着头皮看完了
首先你导入的包错了,你想用hamcrest的匹配方法(equalTo()、is()),得引入的是org.hamcrest.Matchers
应该静态导入这个类的静态方法,之后你就可以直接调用方法,不用管类名了。
这个类是在hamcrest-library.jar里的
我感觉最好是引入junit-dep.4.*.jar(该包是纯JUnit包,不包含hamcrest-core.jar)+hamcrest-library.jar+hamcrest-core.jar
首先你导入的包错了,你想用hamcrest的匹配方法(equalTo()、is()),得引入的是org.hamcrest.Matchers
应该静态导入这个类的静态方法,之后你就可以直接调用方法,不用管类名了。
这个类是在hamcrest-library.jar里的
我感觉最好是引入junit-dep.4.*.jar(该包是纯JUnit包,不包含hamcrest-core.jar)+hamcrest-library.jar+hamcrest-core.jar
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询