zoukankan      html  css  js  c++  java
  • spring整合Junit

    Spring整合Junit

    3.1原始Junit测试Spring的问题

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

        ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
        IAccountService  as = ac.getBean("accountService",IAccountService.class);

    这两行代码的作用是获取容器,如果不写的话,直接回提示空指针异常,所以又不能轻易删除。

    3.2 上述问题解决思路

    • 让SpringJunit负责创建Spring容器,但是需要将配置文件的名称告诉它

    • 将需要进行测试Bean直接在测试类中进行注入

    3.3 Spring 集成Junit代码实现

    ① 导入spring集成Junit的坐标

    ② 使用@Runwith注解替换原来的运行期

    ③ 使用@ContextConfiguration指定配置文件或配置类

    ④ 使用@Autowired注入需要测试的对象

    ⑤ 创建测试方法进行测试

    3.4 Spring 集成Junit代码实现

    ①导入spring集成Junit的坐标

    <!--此处需要注意的是,spring5 及以上版本要求 junit 的版本必须是 4.12 及以上-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.0.2.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>

    ②使用@Runwith注解替换原来的运行期

    @RunWith(SpringJUnit4ClassRunner.class)
    public class SpringJunitTest {
    }

    ③使用@ContextConfiguration指定配置文件或配置类

    @RunWith(SpringJUnit4ClassRunner.class)
    //加载spring核心配置文件
    //@ContextConfiguration(value = {"classpath:applicationContext.xml"})
    //加载spring核心配置类
    @ContextConfiguration(classes = {SpringConfiguration.class})
    public class SpringJunitTest {
    }

    ④使用@Autowired注入需要测试的对象

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(classes = {SpringConfiguration.class})
    public class SpringJunitTest {
        @Autowired
        private UserService userService;
    }

    ⑤创建测试方法进行测试

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(classes = {SpringConfiguration.class})•public class SpringJunitTest {
        @Autowired
        private UserService userService;
        @Test
        public void testUserService(){
         userService.save();
        }
    }

     

  • 相关阅读:
    JS常用互动方法
    JS初级学习准备
    IntelliJ IDEA编辑器激活码
    百度个性化地图的使用
    input输入框 只能输入数字 oninput = "value=value.replace(/[^d]/g,'')" input输入框输入大于0的数字 oninput="value=value.replace(/D|^0/g,'')"
    vue中父子组件传值问题 通过props 和 $emit()方法
    Do not use built-in or reserved HTML elements as component id:mask vue报错
    C++ vector的越界错误
    合并K个有序链表
    合并两个有序数组
  • 原文地址:https://www.cnblogs.com/DiaoStudy/p/13741860.html
Copyright © 2011-2022 走看看