🚩 问题
在测试类中,每个测试方法都有以下两行代码:
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); StudentService service = context.getBean(StudentService.class);
我们使用单元测试要测试的是业务问题,以上两端代码明显不是 。
但是这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常。所以又不能轻易删掉。
🚩 解决问题的思路
- 针对上述问题,我们需要的是程序能自动帮我们创建容器。一旦程序能自动为我们创建 spring 容器,我们就无须手动创建了,问题也就解决了。
- 但紧接的问题就是junit它本身不认识spring,更无法帮助创建Spring容器了,不过好在Junit 给我们暴露了一个注解 ,可以让我们替换掉它的运行器。
- 这时,我们需要依靠 框架,因为它提供了一个 ,可以读取配置文件(或注解)来 。我们只需要告诉它配置文件在哪就行了。
🚩 具体操作
- 第一步:添加依赖
添加spring-test包即可。- 第二步:通过@RunWith注解,指定spring的运行器
Spring的运行器是SpringJunit4ClassRunner- 第三步:通过@ContextConfiguration注解,指定spring运行器需要的配置文件路径
- 第四步:通过@Autowired注解给测试类中的变量注入数据
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:applicationContext.xml") public class SpirngRunnerTest { @Autowired private StudentService studentService; @Test public void saveStudent(){ studentService.saveStudent(); } }
⚡ 本文章非原创
⚡ 仅供参考学习
⚡ 内容来源于某视频网教学课件
网友评论