Bootstrap

Spring整合Junit

普通Junit测试问题

在普通的测试类中,需要开发者手动加载配置文件并创建Spring容器,然后通过Spring相关API获得Bean实例。

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
AccountService accountService = applicationContext.getBean(AccountService.class);

我们可以让SpringJunit负责创建Spring容器来简化这个操作,直接在测试类注入Bean实例,但需要将配置文件的名称告诉它。

Spring整合Junit

导入spring集成Junit的依赖坐标

此处需要注意的是,spring5 及以上版本,要求 junit 的版本必须是 4.12 及以上

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>5.1.5.RELEASE</version>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

创建测试方法进行测试

// 使用@RunWith注解替换原来的运行器
@RunWith(SpringJUnit4ClassRunner.class)
// 使用@ContextConfiguration指定配置文件或配置类
@ContextConfiguration(value = {"classpath:applicationContext.xml"})		// 指定配置文件
// @ContextConfiguration(classes = {SpringConfig.class})				// 指定配置类
public class SpringJunitTest {
	
    // 使用@Autowired注入需要测试的对象
	@Autowired
	private AccountService accountService;
	
	// 测试查询
	@Test
	public void testFindById() {
		Account account = accountService.findById(3);
		System.out.println(account);
	}
}
;