我们先从最基础的spring项目说起
1.首先是依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version> 3.2.4.RELEASE </version>
<scope>provided</scope>
</dependency>
2.测试类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=MyConfig.class) //加载配置文件
public class BaseJunit4Test {
}
@RunWith :是Junit的注解,它会提供一个测试运行器来指导JUnit如何运行测试。
SpringJUnit4ClassRunner有个别名,更方便记,SpringRunner,可以写为@RunWith(SpringRunner.class)
@ContextConfiguration(classes=MyConfig.class) : 此注解是在MyConfig.class中加载配置。
以上类的作用:开始测试的时候自动创建Spring应用上下文,并加载配置类里面的bean,测试的时候仅需使用注入这些bean即可
springboot中的测试
package soundsystem;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SprinRunner.class)
@SpringBootTest
public class CDPlayerTest {
}
@RunWith是Junit4提供的注解,将Spring和Junit链接了起来。假如使用Junit5,不再需要使用.@ExtendWith注解,@SpringBootTest和其它@*Test默认已经包含了该注解。
@SpringBootTest替代了spring-test中的@ContextConfiguration注解,目的是加载ApplicationContext,启动spring容器。
使用@SpringBootTest时并没有像@ContextConfiguration一样显示指定locations或classes属性,原因在于@SpringBootTest注解会自动检索程序的配置文件,检索顺序是从当前包开始,逐级向上查找被@SpringBootApplication或@SpringBootConfiguration注解的类。
网友评论