저는 Python 3.4 및 Django 1.7을 사용하고 있습니다. JsonResponse
을 반환하는보기가 있습니다.Django의 assertJSONEqual을 사용하여 JsonResponse를 반환하는보기의 응답을 확인하는 방법
def add_item_to_collection(request):
#(...)
return JsonResponse({'status':'success'})
나는 확인하려면 해당 뷰를 반환 올바른 응답을 사용하여 단위 테스트의 경우 : 검사 텟 올바른 방법은 무엇
Error
Traceback (most recent call last):
File "E:\Projects\collecthub\app\collecthub\collecting\tests.py", line 148, in test_success_when_added_before
self.assertJSONEqual(response.content, {'status': 'OK'})
File "E:\Projects\collecthub\venv\lib\site-packages\django\test\testcases.py", line 675, in assertJSONEqual
data = json.loads(raw)
File "C:\Python34\Lib\json\__init__.py", line 312, in loads
s.__class__.__name__))
TypeError: the JSON object must be str, not 'bytes'
다음 assertJSONEqual()
라인 예외가 발생하지만
class AddItemToCollectionTest(TestCase):
def test_success_when_not_added_before(self):
response = self.client.post('/add-item-to-collection')
self.assertEqual(response.status_code, 200)
self.assertJSONEqual(response.content, {'status': 'success'})
응답 내용에 응답에 JSON이 포함되어있을 때? assertJSONEqual()
의 원래 값을 비교하려고하면 왜 형식 오류가 발생합니까?
'str' 대신에 다음과 같이 작동합니다 :'response.content.decode ("utf-8")' – jaywink