单元测试
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对请求返回的内容进行验证;