没有合适的资源?快使用搜索试试~ 我知道了~
首页SpringBoot2种单元测试方法解析
SpringBoot2种单元测试方法解析
847 浏览量
更新于2023-05-27
评论
收藏 69KB PDF 举报
主要介绍了SpringBoot2种单元测试方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
资源详情
资源评论
资源推荐

SpringBoot2种单元测试方法解析种单元测试方法解析
主要介绍了SpringBoot2种单元测试方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
学习价值,需要的朋友可以参考下
一一 普通测试类普通测试类
当有一个测试方法的时候,直接运行。
要在方法前后做事情,可以用before或者after。
假如有多个方法运行,则可以选择类进行运行。
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestApplicationTests {
@Test
public void testOne(){
System.out.println("test hello 1");
TestCase.assertEquals(1, 1);
}
@Test
public void testTwo(){
System.out.println("test hello 2");
TestCase.assertEquals(1, 1);
}
@Before
public void testBefore(){
System.out.println("before");
}
@After
public void testAfter(){
System.out.println("after");
}
}
测试结果:
2019-10-28 21:17:25.466 INFO 18872 --- [ main] com.example.demo.TestApplicationTests : Started TestApplicationTests in 1.131 seconds (JVM running for 5.525)
before
test hello 1
after
before
test hello 2
after
二二 MockMvc
1 perform方法其实只是为了构建一个请求,并且返回ResultActions实例,该实例则是可以获取到请求的返回内容。
2 MockMvcRequestBuilders该抽象类则是可以构建多种请求方式,如:Post、Get、Put、Delete等常用的请求方式,其中参数则是我们
需要请求的本项目的相对路径,/则是项目请求的根路径。
3 param方法用于在发送请求时携带参数,当然除了该方法还有很多其他的方法,大家可以根据实际请求情况选择调用。
4 andReturn方法则是在发送请求后需要获取放回时调用,该方法返回MvcResult对象,该对象可以获取到返回的视图名称、返回的
Response状态、获取拦截请求的拦截器集合等。
5 我们在这里就是使用到了第4步内的MvcResult对象实例获取的MockHttpServletResponse对象从而才得到的Status状态码。
6 同样也是使用MvcResult实例获取的MockHttpServletResponse对象从而得到的请求返回的字符串内容。【可以查看rest返回的json数
据】
7 使用Junit内部验证类Assert判断返回的状态码是否正常为200
8 判断返回的字符串是否与我们预计的一样。
要测试 Spring MVC 控制器是否正常工作,您可以使用@WebMvcTest annotation。 @WebMvcTest将 auto-configure Spring MVC 基础
架构并将扫描的 beans 限制为@Controller,@ControllerAdvice,@JsonComponent,Filter,WebMvcConfigurer和
HandlerMethodArgumentResolver。使用此 annotation 时,不会扫描常规@Component beans。
@WebMvcTest通常仅限于一个控制器,并与@MockBean结合使用。
@WebMvcTest也 auto-configures MockMvc。 Mock MVC 提供了一种快速测试 MVC 控制器的强大方法,无需启动完整的 HTTP 服务
器。
您也可以通过@AutoConfigureMockMvc注释非@WebMvcTest(e.g. SpringBootTest)auto-configure MockMvc。
import org.junit.*;
import org.junit.runner.*;
import org.springframework.beans.factory.annotation.*;

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0