场景
测试一些方法时, 可能会遇到该方法需要鉴权的情况(如login_required
之类), 需要想办法绕过装饰器.
解决方案
- 为装饰器加开关. 在装饰器中通过读取某个配置判断是否开启该装饰器;
- mock掉装饰器.
前者操作起来方便, 但是在遇到不同装饰器都需要mock时, 为每个装饰器添加开关有些工作量;
而后者也有弊端, 即此次测试中, 所有测试都基于该装饰器不生效的情况下测试. 因此对于如权限等的测试, 需要添加其他测试手段(如接口测试)来完成.
本文讲述的是第二个解决方案的具体实现.