DRF 测试 JSON 对象列表是否包含特定对象
DRF test if JSON list of objects contains a specific object
我正在测试来自 Django DRF 的端点,它会生成一个 JSON 对象列表。我正在尝试检查特定对象是否在返回列表中。我试过 assertIn 和 assertContains,但它们会产生错误。
我的端点returns对象列表:
[
{
'id' : 1,
'name': 'HelpMe'
},
{
'id' : 2,
'name': 'WhatToDo'
},
{
'id' : 3,
'name': 'ToSolveThis'
},
]
assertIn 的测试代码:
def test_list(self):
client = APIClient()
response = client.get('/api/some_list/', format='json')
self.assertEqual(
len(response.data),
19
)
self.assertIn(
response.data,
{
"id": 2,
"name": "WhatToDo"
}
)
assertIn 产生 TypeError: unhashable type: 'ReturnList'
assertContains 的测试代码:
def test_list(self):
client = APIClient()
response = client.get('/api/some_list/', format='json')
self.assertEqual(
len(response.data),
19
)
self.assertContains(
response,
{
"id": 2,
"name": "WhatToDo"
}
)
assertContain 刚刚没有通过测试。
测试响应中特定对象是否存在于 JSON 列表中的最佳方法是什么?
您已经颠倒了以下参数:assertIn
,试试这个:
self.assertIn({"id": 2, "name": "WhatToDo"}, response.data)
# Or you can also write:
self.assertTrue({"id": 2, "name": "WhatToDo"} in response.data)
我正在测试来自 Django DRF 的端点,它会生成一个 JSON 对象列表。我正在尝试检查特定对象是否在返回列表中。我试过 assertIn 和 assertContains,但它们会产生错误。
我的端点returns对象列表:
[
{
'id' : 1,
'name': 'HelpMe'
},
{
'id' : 2,
'name': 'WhatToDo'
},
{
'id' : 3,
'name': 'ToSolveThis'
},
]
assertIn 的测试代码:
def test_list(self):
client = APIClient()
response = client.get('/api/some_list/', format='json')
self.assertEqual(
len(response.data),
19
)
self.assertIn(
response.data,
{
"id": 2,
"name": "WhatToDo"
}
)
assertIn 产生 TypeError: unhashable type: 'ReturnList'
assertContains 的测试代码:
def test_list(self):
client = APIClient()
response = client.get('/api/some_list/', format='json')
self.assertEqual(
len(response.data),
19
)
self.assertContains(
response,
{
"id": 2,
"name": "WhatToDo"
}
)
assertContain 刚刚没有通过测试。
测试响应中特定对象是否存在于 JSON 列表中的最佳方法是什么?
您已经颠倒了以下参数:assertIn
,试试这个:
self.assertIn({"id": 2, "name": "WhatToDo"}, response.data)
# Or you can also write:
self.assertTrue({"id": 2, "name": "WhatToDo"} in response.data)