为什么 pytest 客户端在我应该得到 400 错误时给出 404 错误

Why is pytest client giving 404 error when I should be getting 400 error

问题总结: 我正在学习 testdriven.io tdd django 课程并 运行 遇到一个问题。 Pytest 客户端的 http 响应与 postman 和 httpie 对相同负载的响应不同

我试过的: 我尝试在我正在测试的所有三个客户端(httpie、postman、pytest)上发布相同的数据。当我使用 httpie 或邮递员时,我收到 400 错误,所以我希望在编写测试时测试客户端会看到 400 错误,但测试失败,因为客户端看到 404。

@pytest.mark.django_db
def test_add_movie_invalid_json_keys(client):
    movies = Movie.objects.all()
    assert len(movies) == 0

    resp = client.post(
      "api/movies/",
      {"title": "The Big Lebowski", "year": "1998"},
      content_type="application/json",
    )
    assert resp.status_code == 400

    movies = Movie.objects.all()
    assert len(movies) == 0

pytest output

您在 URL 中缺少一个正斜杠。应该是 "/api/movies/".