专栏名称: AlllenShen
目录
相关文章推荐
前程无忧51job  ·  过去一年,77%电商人没换过工作,“升职焦虑 ... ·  2 天前  
传媒招聘那些事儿  ·  小红书:电商运营 - MCN管理 ·  3 天前  
传媒招聘那些事儿  ·  【全职岗位表格】在线文档持续更新:新闻媒体/ ... ·  3 天前  
传媒招聘那些事儿  ·  央媒招聘!人民网根据事业发展需要,拟公开招聘 ... ·  4 天前  
51好读  ›  专栏  ›  AlllenShen

【测试实战】如果要代码有外部请求应该怎么测试

AlllenShen  · 掘金  ·  · 2019-05-21 18:29

正文

请到「今天看啥」查看全文


  • login接口接受小程序发送的登录code,并向微信登录接口请求session_key

    这里前端的code是在测试中拿不到的,所以真实请求也是不可能的。

  • 中间件需要请求远程分析接口,这个接口是项目中独立的部分,不在中间件的测试内容中

你可以想一想,这个需求场景是非常常见的。

解决思路

两个例子我讲两个不同的解决思路,适应不同的场景,后面一个是我今晚上开脑洞搞的。

小程序登录

这个需求中,不管是请求参数还是业务逻辑中的外部请求,都是不可以模拟的,所以我在这里使用的思路是mock。 这也是遇到这种情况一个常见的思路

为了方便测试,我专门封装了一个请求的方法来mock

@staticmethod
def get_code2session(code):
    """
    将接口请求独立封装以方便测试时mock.
    返回请求后的json
    """
    api_url = 'https://api.weixin.qq.com/sns/jscode2session'
    return requests.get(api_url,{
                            'appid': CONFIG['app_id'],
                            'secret': CONFIG['app_secret'],
                            'js_code': code,
                            'grant_type': 'authorization_code'
                        }).json()
复制代码

测试部分

api_res_mock = [
    ({
        'errcode': -1,
    }),({
        'errcode': 0,
        'session_key'






请到「今天看啥」查看全文