<HttpResponseNotFound status_code=404, "text/html"> 在 django 测试中

<HttpResponseNotFound status_code=404, "text/html"> in django-test

我是单元测试的新手,我一直在尝试测试我构建的纸牌游戏的 GET 方法。

我的测试用例如下:

def test_rooms(self):
    c = APIClient()
    room_id = PokerRoom.objects.get(name='planning').id
    request = c.get('http://127.0.0.1:8000/room/{}'.format(room_id))
    print(request)

ID 是一个 UUID,这就是我使用 room_id 方法的原因。

我的url:

    path('room/<int:pk>', room),

其中 room 是一个 @api_view(['GET']) 方法,pk 是房间的 id。但是当我尝试测试它时,出现错误:

<HttpResponseNotFound status_code=404, "text/html">

检查了房间是否存在于测试数据库中并且确实存在,现在我不知道发生了什么。有人可以帮助我吗?

您能否在上面的代码中添加更多详细信息,例如如何创建测试套件、如何设置数据等?我立即注意到的一个问题是如何提出请求。为什么要使用完整的 URL?如果您使用 Django/DRF 测试 API 客户端,您应该使用视图路径 URL 而不是完整的 URL.

参考:https://docs.djangoproject.com/en/4.0/topics/testing/tools/#overview-and-a-quick-example