一、首先需要在pom.xml中加入junit依赖(在这里,需要注意一下,spring版本与Junit版本的兼容问题)。
在基于spring的项目中添加如下依赖:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version> 5.1.4.RELEASE </version>
<scope>test</scope>
</dependency>
项目包二、下图是我在IDEA中的项目包的架构,我们需要在此进行单元测试编写
代码如下:
Max.java
package com.spring.IoC;
public class Max {
private int a;
private int b;
public Max(int a, int b) {
this.a = a;
this.b = b;
}
public int getMax() {
return a > b ? a : b;
}
}
MaxApp.java
package com.spring.IoC;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MaxApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("/applicationContext.xml");
Max max = (Max) context.getBean(Max.class);
System.out.println(max.getMax());
}
}
MaxTest.java
package com.spring.IoC;
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;
import static org.junit.Assert.*;
//指定单元测试环境
@RunWith(SpringJUnit4ClassRunner.class)
//指定配置文件路径
@ContextConfiguration(locations = {"/CarBossMeeting.xml"})/*指定配置文件位置*/
public class MaxTest {
//自动注入max
@Autowired
private Max max;
@Test
public void getMax() {
assertEquals(5, max.getMax());
}
}
解释下用到的注解:
- @RunWith:用于指定junit运行环境,是junit提供给其他框架测试环境接口扩展,为了便于使用spring的依赖注入,spring提供了org.springframework.test.context.junit4.SpringJUnit4ClassRunner作为Junit测试环境。
- @ContextConfiguration(locations = {"/CarBossMeeting.xml"})导入配置文件。
网友评论