美文网首页
springMvc 使用junit测试

springMvc 使用junit测试

作者: brewswang | 来源:发表于2019-11-15 13:09 被阅读0次

    这两天在研究使用junit进行代码功能测试,开发工具:intellij idea,就遇到的问题进行分享,、

    一、基本的使用

    第一步

    在Maven中加入Junit jar的依赖

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>4.11</version>

      <scope>test</scope>

    </dependency>

    第二步

    在main目录下新建test文件夹如图,这时候你是不能在test文件夹下新建Java文件的.

    test文件夹建好之后右击test文件夹如下如图找到MarkDirectory as–>Test Resources Root

    当上述操作完成后你可以在test文件夹下新建Java文件

    第三步

    在test目录下新建Java文件,类名自取,比如我取了Test.如下图@Test注解可以使用

    然后执行:

    以上是个简单的步骤。

    可以还有深层次的问题进行研究。

    首先,资源的读取,

    如果资源在resource下,那么引入的方式:

    @ContextConfiguration(locations="classpath:ApplicationContext.xml")

    如果在webapp下如何引用呢?

    @ContextConfiguration({"file:src/main/webapp/WEB-INF/applicationContext.xml"})  

    如果想测试和正式分的更彻底一些,把资源文件放在test目录下,怎么操作呢,

    比如创建一个目录名字叫resource,那么我们怎么使用呢,可以做如下的操作:

    然后如何使用呢:

    @ContextConfiguration(locations = {"/WEB-INF/conf/applicationContext.xml"})

    为了更方便的进行测试,可能需要把所有的service等文件进行注入,这过程中可能会遇到一些bug, 下面我们来一一排除。

    问题一。

    ClassLoader [sun.misc.Launcher$AppClassLoader] does NOT provide an 'addTransformer(ClassFileTransformer)' method.

    解决方案:

    <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-instrument</artifactId>

    <version>${spring.version}</version>

    </dependency>

    <!--spring instrumentation end-->

    <plugin>

    <groupId>org.apache.maven.plugins</groupId>

    <artifactId>maven-surefire-plugin</artifactId>

    <version>2.19</version>

    <configuration>

    <forkMode>once</forkMode>

    <argLine>

    -javaagent:${settings.localRepository}/org/springframework/spring-instrument/3.2.6.RELEASE/spring-instrument-3.2.6.RELEASE.jar

    -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/1.8.0/aspectjweaver-1.8.0.jar

    </argLine>

    </configuration>

    </plugin>

    问题二、使用junit测试springMVC项目提示ServletContext找不到定义错误

    Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.servlet.ServletContext] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}

    解决方案:

    其实提示很清楚就是找不到注入javax.servlet.ServletContext 的实例,明显就是没有web容器环境

    解决办法就是配置web容器配置

    为类添加注解 @WebAppConfiguration 即可

    这样测试就可以正常进行了

    相关文章

      网友评论

          本文标题:springMvc 使用junit测试

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