You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pytest测试Django REST Framework API时状态码断言异常

问题原因与解决方法

问题出在你用is运算符比较HTTP状态码的值,而非==。

  • Python里is用来判断两个对象是否指向同一内存地址(身份相同),==才是判断值是否相等。
  • 虽然Python对-5到256的小整数有缓存,但response.status_code返回的整数可能因动态生成等原因,没有复用缓存实例,导致值同为400但内存地址不同,触发is断言失败。

修复后的测试代码:

def test_client_gets_invalid_when_submitting_invlaid_data(self):
    client = APIClient()
    response = client.post(path="/user/register/", data={})
    assert response.status_code == 400  # 替换is为==

总结:比较数值、字符串等值时优先用==;仅在判断对象是否为同一实例(比如is None)时使用is。

内容的提问来源于stack exchange,提问作者liam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:27:53