Spring框架(二)——SpringTest

本文详细介绍了如何在Spring框架中使用SpringTest进行单元测试,包括环境准备、关键注解的应用、无配置文件的实践,以及常见错误的排查。重点讲解了如何避免版本冲突和正确导入测试包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringTest是Spring框架用来做单元测试的工具。使用SpringTest需要结合Junit一起使用。

一、环境准备

1.1 导入jar包

下载jar或使用maven导入依赖包

<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.0.9.RELEASE</version>
    </dependency>

1.2 编写测试类

一般来说,每一个业务类都应该对应一个测试类。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {SpringConfig.class})
public class UserSeriviceTest {
    @Test
    public  void test(){
        ApplicationContext ac =  new AnnotationConfigApplicationContext(SpringConfig.class);
        UserService userService = (UserService) ac.getBean("userService");
        userService.work();
    }
}

二、相关注解

@RunWith:指定Junit运行器,它负责执行测试类。
@ContextConfiguration:指定Spring配置文件的位置;

三、零配置(无配置文件)

  1. 使用@Configuration注解,指定Spring容器从当前类中加载读取配置信息即可实现零配置;
  2. 使用@ComponentScan注解,指定spring容器初始化时候要扫描的包;
@Configuration
@ComponentScan(basePackages = {"com.spring"})
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {UserSeriviceTest.class})
public class UserSeriviceTest{
    @Test
    public  void test(){
        ApplicationContext ac =  new AnnotationConfigApplicationContext(SpringConfig.class);
        UserService userService = (UserService) ac.getBean("userService");
        userService.work();
    }
}

四、常见异常

4.1 org.springframework.util.Assert.notNull(Ljava/lang/Object;Ljava/util/function/Supplier;)V

一般是因为jar冲突,版本不兼容;
例如:

 <!--Spring依赖包-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.9.RELEASE</version>
    </dependency>
    <!-- Spring-text -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.0.9.RELEASE</version>
    </dependency>

因为spring-test的版本和Spring的版本不同导致异常,只需要导入版本一致的包即可;

4.2 org.junit.runners.model.InvalidTestClassError: Invalid test class

这个是因为导错Test包了,导入了

 import org.junit.jupiter.api.Test

应该是

import org.junit.Test
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值