美文网首页
7.Spring整合JUint

7.Spring整合JUint

作者: 893914135dfd | 来源:发表于2019-05-26 23:58 被阅读0次

    🚩 问题

    在测试类中,每个测试方法都有以下两行代码:

    ApplicationContext context = 
                  new ClassPathXmlApplicationContext("applicationContext.xml");
    StudentService service = context.getBean(StudentService.class);
    

    我们使用单元测试要测试的是业务问题,以上两端代码明显不是\color{red}{业务代码}
    但是这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常。所以又不能轻易删掉。


    🚩 解决问题的思路

    • 针对上述问题,我们需要的是程序能自动帮我们创建容器。一旦程序能自动为我们创建 spring 容器,我们就无须手动创建了,问题也就解决了。
    • 但紧接的问题就是junit它本身不认识spring,更无法帮助创建Spring容器了,不过好在Junit 给我们暴露了一个注解\color{red}{(@RunWith)} ,可以让我们替换掉它的运行器。
    • 这时,我们需要依靠 \color{red}{spring }框架,因为它提供了一个 \color{red}{运行器},可以读取配置文件(或注解)来 \color{red}{创建容器}。我们只需要告诉它配置文件在哪就行了。

    🚩 具体操作

    • 第一步:添加依赖
      添加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();
       }
       
    }
    

    ⚡ 本文章非原创
    ⚡ 仅供参考学习
    ⚡ 内容来源于某视频网教学课件

    相关文章

      网友评论

          本文标题:7.Spring整合JUint

          本文链接:https://www.haomeiwen.com/subject/jtsqtctx.html