JUnit5

JUnit是最早接触也是最被熟知的Java单元测试框架
https://junit.org/junit5/docs/current/user-guide/#overview

mockito4

https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html

使用过程中区分@Mock与@injectMocks
@InjectMocks: 创建一个实例,简单的说是这个Mock可以调用真实代码的方法
其余用@Mock(或@Spy)注解创建的mock将被注入到用该实例中。
请注意:必须使用@RunWith(MockitoJUnitRunner.class)或Mockito.initMocks(this)初始化这些模拟并注入它们。

MockMvc

在对Controller进行测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试,这样会使得测试变得很麻烦,比如,启动速度慢,测试验证不方便,依赖网络环境等
引入了MockMVC对Controller测试更为方便
MockMvc基于springframework.test

步骤

  • MockMvcBuilder构造MockMvc的构造器;
  • mockMvc调用perform,执行一个RequestBuilder请求,调用controller的业务处理逻辑;
  • perform返回ResultActions,返回操作结果,通过ResultActions,提供了统一的验证方式;
  • 使用StatusResultMatchers对请求结果进行验证;
  • 使用ContentResultMatchers对请求返回的内容进行验证;