为什么 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/"
.
问题总结: 我正在学习 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/"
.