Spring整合Junit

原始Junit测试Spring的问题

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

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

作用是获取容器,如果不写,会报空指针异常,所以又不能轻易删掉

问题解决思路
  1. 让SpringJunit负责创建Spring容器,但是需要将配置文件的名称告诉他
  2. 将需要进行测试Bean直接在测试类中进行注入
Spring集成Junit的步骤
  1. 导入Junit坐标(spring-test)

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.2.8.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  2. 使用@Runwith注解替换原来的运行期

    @RunWith(SpringJUnit4ClassRunner.class)

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

    @ContextConfiguration(classes = {SpringConfiguration.class})
    @ContextConfiguration("classpath:applicationContext.xml")
  4. 使用@Autowired注入需要测试的对象

    @Autowired
    private UserService userService;
  5. 创建测试方法进行测试

    @Test
    public void test1(){
       userService.save();
    }
Last modification:September 25th, 2020 at 09:28 am
如果觉得我的文章对你有用,请随意赞赏