SpringBoot集成Mock进行接口测试

一、前言


1、遇到的问题:

        为确保功能稳定在线上运行,功能上线前必须要进行覆盖性单元测试,但由于接口测试需要通过PostMan或者Swagger进行调用,才能进行集成测试。而且通过PostMan或者Swagger进行测试后,测试用例无法进行保存,进而无法确保测试用例是否全面覆盖,而且测试用例无法留存。

2、解决方案:        

        通过SpringBootTest注入Mock的方式,来进行接口调用单元测试。

二、功能代码


@RestController("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/list")
    public ResponseEntity<List<User>> list() {
        return new ResponseEntity(list, HttpStatus.OK);
    }

    /**
     * user中存放筛选过滤条件
     */
    @PostMapping("/list2")
    public ResponseEntity<List<User>> list(User user, 
        @RequestParam(name = "current", defaultValue = "1") Integer current,
        @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
        return new ResponseEntity(list, HttpStatus.OK);
    }

    @PostMapping("/add")
    public ResponseEntity<String> add(@RequestBody User user){
        userService.add(user);
        return new ResponseEntity("成功", HttpStatus.OK);
    }
}

三、集成Mock


1、导入SpringBoot的测试依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
</dependency>

2、创建一个测试用例

(1)@RunWith和@SpringBootTest:表示是一个可以启动容器的测试类。
(2)@WebAppConfiguration:表示测试环境使用的ApplicationContext将是WebApplicationContext类型的。
(3)@AutoConfigureMockMvc:表示是一个可以通过Mock方式进行单元测试的类。

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
@WebAppConfiguration
// @AutoConfigureMockMvc是用于自动配置MockMvc

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值