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();
        }
    }

     

  • 相关阅读:
    nat
    ICE协议下NAT穿越的实现(STUN&TURN)
    比特币源码分析--端口映射
    IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别(百度)
    从数据的角度带你深入了解IPFS
    IPFS 到底是怎么工作的?
    从数据的角度带你深入了解IPFS
    IPFS
    IPFS中文简介
    bootstrap 表单验证 dem
  • 原文地址:https://www.cnblogs.com/DiaoStudy/p/13741860.html
Copyright © 2011-2022 走看看