springboot项目中使用junit测试
简单介绍一下在boot项目中集成junit,会出现的一些问题以及解决方案。
搭建过程:
在pom中引入经典版本的4.12的junit依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
接着在test文件下创建测试类
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
上面完成了基本工作
添加关键注解:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Test
public void contextLoads() {
System.out.println("hello Junit!");
}
}
这里可以看到,添加了两个注解,@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
在SSM项目中,我们使用junit是用的这两个注解:
@RunWIth(SpringJunit4ClassRunner.class)
@ContextConfiguration(locations = {“classpath:applicationContext.xml”}
(需要指定spring的配置文件)
而在boot中可以使用@SpringBootTest,会自动去读取我们boot的配置文件
正常运行如下:
启动boot项目,调用其controller中的一个方法,进行测试。
@RestController
public class UserController {
@RequestMapping("/user")
public String gets() {
return "hello";
}
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Autowired
private UserController userController;
@Test
public void contextLoads() {
String gets = userController.gets();
System.out.println(gets);
}
}
如果不加@RunWith(SpringJUnit4ClassRunner.class),
则会报npe异常
如果添加了@ContextConfiguration(locations = “classpath:application.properties”),
会报前言中不允许有内容
如果不加@SpringBootTest,
会报注解问题