django - python 与 ajax的交互,怎么写单元测试?

 手机用户2502859523 发布于 2022-10-27 12:03

最近在写Django项目的单元测试,其中在views.py中处理了ajax的请求。请问这块代码如何写单元测试?
示例代码如下:

if request.method == 'POST':
    if request.is_ajax():
        # 处理Ajax请求
        req = json.loads(request.body.decode())
        # 完成item
        if req['option'] == 'item_finishing':
            Item.update_status(req['item_id'])

        return redirect(list_)
3 个回答
  • 使用django的test client比较合适模拟发送请求,不需要额外搭建服务器。
    client还提供force_login功能来指定以什么样的用户和auth backen登陆,比较方便。

    2022-10-28 11:20 回答
  • 哦了解了你的需求 你可以参考一下这个链接描述的 了解校验ajax原理是校验头
    http://stackoverflow.com/ques...

    单元测试使用requests改造头模拟请求该接口判断是否成功
    或者像flask一样django也能提供自己的一个请求上下文client,修改其头部参数测试即可。

    2022-10-28 11:20 回答
  • resp = self.client.post(reverse('view_route'),
                     {
                       'key': value
                     },
                     HTTP_X_REQUESTED_WITH='XMLHttpRequest')
    self.assertContains(resp, some_data)
    2022-10-28 11:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有