SpringBoot中单元测试与MockMvc的使用
单元测试
定义:单元测试(unit testing)是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作
使用:单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
使用测试类之前需要提前导入junit包,测试类放置于与main同级包下的test中,一般的测试类如下图所示:要注意标红部分的注解的使用,进行一次测试方法的运行就会进行一次@Before和@After下的方法的运行,如果运行测试类每一个测试方法也都会逐个运行,每个测试方法运行时@Before和@After下的方法也会运行。也就是说运行多少次测试方法@Before和@After下的方法就会运行多少次。
MockMvc
为什么要使用MockMvc?
对模块进行集成测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试,这样会使得测试变得很麻烦,比如,启动速度慢,测试验证不方便,依赖网络环境等,所以为了可以对Controller进行测试,我们引入了MockMVC。
MockMvc实现了对Http请求的模拟,能够直接使用网络的形式,转换到Controller的调用,这样可以使得测试速度快、不依赖网络环境,而且提供了一套验证的工具,这样可以使得请求的验证统一而且很方便。
相应的API说明:
perform执⾏一个RequestBuilder请求;
andExpect:添加ResultMatcher->MockMvcResultMatchers验证规则 ;
andReturn:最后返回相应的MvcResult->Response;
测试代码如下:
测试结果如下: