美文网首页
Spring和Junit4组合进行Spring测试报错踩坑

Spring和Junit4组合进行Spring测试报错踩坑

作者: 于无声处写写写 | 来源:发表于2019-06-09 15:27 被阅读0次

    在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

    image.png

    相关文章

      网友评论

          本文标题:Spring和Junit4组合进行Spring测试报错踩坑

          本文链接:https://www.haomeiwen.com/subject/lfknxctx.html