springMvc 使用junit测试

2019-11-15  本文已影响0人  brewswang

这两天在研究使用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 即可

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

上一篇下一篇

猜你喜欢

热点阅读