普通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);
}
}