在Spring项目中,不要简单地用Juint测试啦,Spring结合Junit可以更好的对Spring项目进行测试
package chapter2;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* @ClassName CDPlayerTest
* @Description TODO
* @Author 王海峰
* @Date 2019/6/9 14:25
* @Version 1.0
*/
@ContextConfiguration(classes = CDPlayerConfig.class)
//告诉该类需要在CDPlayerConfig中加载配置
@RunWith(SpringJUnit4ClassRunner.class)
public class CDPlayerTest {
@Autowired
private CompactDisc compactDisc;
@Test
public void cdShouldNotBeNull() {
compactDisc.play();
}
}
具体的用法本文不赘述,主要讲在应用的过程中踩到的坑。
坑1
如果想要结合Junit和Spring进行测试,必须保证Junit的版本在4.12以及4.12之上
坑2
你以为只要保证了Junit的版本正确就结束了嘛?没有的,在Junit4.11及以上的版本中,Jar包中不再包含hamcrest啦,如果应用Junit和Spring进行测试,会报错,错误如下:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
因此解决办法是应该单独引入hamcrest的jar包,但是hamcrest的jar包版本不能随意,比如引入2.1版本的jar包就无效,还是报错,正确的版本是1.3,至于为什么我也不知道。
终极解决办法
因此想要在Spring中应用Juint测试,最终的方法就是在项目中引入Junit 4.12以上版本的Junit jar包,同时引入hamcrest 1.3版本的jar包
Junit-4.12+hamcrest-all-1.3