当我们开发项目后,通常需要进行单元测试,确保开发符合预期。但是对于Springboot项目,依赖部分IOC容器对象的注入。比如代码中存在@Autowired、@Service、@Mapper等。
1、确保pom.xml中包含了依赖,其中的version和scope,大家按需调整即可。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
<version>3.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
2、确保测试类的包名和源码的包名要一致
3、在测试类上添加注解,即可使用注入功能。
@RunWith(SpringRunner.class)
@SpringBootTest
public class MyAppPropertiesTest extends TestCase {
@Autowired
MyAppProperties myAppProperties;
@Test
public void testAutoConfigure() {
assertTrue(myAppProperties.getTestFlag());
}
}
4、测试方法上的@Test时不能省略的,是否继承TestCase可以根据需要来。
5、如果你开发的是一个依赖库,没有SpringBoot入口,入口文件和配置文件也可以放在test中,不影响依赖库打包,比如这样: