美文网首页
Spring与Junit4在无网络下的集成测试

Spring与Junit4在无网络下的集成测试

作者: 爱恨_交加 | 来源:发表于2020-06-08 23:14 被阅读0次

    背景:项目底层NoSQL数据库类型切换,需要做单元测试

    1. 项目是Dynamic Web Project类型的,入口文件是在WEB-INF下的web.xml;
    2. 不能连接外网;
    3. 在基于Spring4下使用Junit4.12编写测试类测试DAO层接口。

    Junit测试环境准备:

    • 本次测试使用 @Configuration 加载所需配置文件

    说明:spring-servlet.xml属于WEB-INF/web.xml加载的配置文件,但是使用file:xx的形式加载web.xml后,测试发现实际上是没有加载初始化spring-servlet.xml的。如果在测试类中注入spring-servlet.xml中的bean,会报找不到NoSuchBeanDefinitionException,所以需额外引入。spring-servlet.xml里引用其它的xml文件并不需要额外引入。

    @Configuration(locations={"file:WebContent/WEB-INF/web.xml","classpath:spring-servlet.xml"})
    
    • WEB-INF下web.xml文件里的内容需要按照指定的约束语法按顺序排好
      比如<filter>必须在<listener>之前、所有的<filter-mapping>必须在所有的<filter>之后。

    • XML文件检验形式
      项目servlet api是2.5版本的,使用xsd而不是dtd校验,在跑测试类的时候报 "没有找到元素'web-app'" 。针对该现象折腾了好久都没有解决,最后使用了 2.3 版本的dtd文件作校验。如何使用本地dtd文件作校验请百度。

    知道如何在无网络的情况下使用xsd形式校验XML文件的,请不吝留言,在此谢过!

    按以上操作后,便可以正常跑测试类了。

    相关文章

      网友评论

          本文标题:Spring与Junit4在无网络下的集成测试

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