在django rest API单元测试中测试500错误代码

noj0wjuj  于 2023-05-30  发布在  Go
关注(0)|答案(1)|浏览(188)

我正在使用Django rest_framework为我的API端点进行单元测试。我能够测试与我的端点相关的大部分错误代码,除了500错误代码。在单元测试框架中,有没有办法模拟客户端函数返回500错误响应,或者有没有更干净的方法?

class UserApiTests(TestCase):

    def setUp(self):
        self.client = APIClient()

    ...

    def test_retrieve_user(self):
        """Test server failure while retrieving profile for user."""
        res = self.client.get(USER_URL)
        # Below should return server error
        self.assertEqual(res.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
r7s23pms

r7s23pms1#

APIClient类支持与Django标准Client类相同的请求接口,因此可以使用raise_request_exception参数来控制是否引发异常或返回500响应(将raise_request_exception设置为False以获得500响应)。
修改setUp()方法应该可以做到这一点:

def setUp(self):
    self.client = APIClient(raise_request_exception=False)

以下是文档和ticket discussing this issue以获取更多信息。

相关问题