Мне нужно выполнить модульный микшер Django REST. поэтому я пойти на тест, который выглядит следующим образом:Django rest framework unit view viewets mixins
class TestMyMixin(APITestCase):
class DummyView(MyMixin,
viewsets.ModelViewSet):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
#some properties omitted
def setUp(self):
self.view = self.DummyView.as_view(\
actions={'get':'list'})
def test_basic_query(self):
instance = MyModel.objects.create(\
**{'name':'alex'})
request = APIRequestFactory().get(\
'/fake-path?query=ale',
content_type='application/json')
response = self.view(request)
self.assertEqual(\
response.status_code,status.HTTP_200_OK)
json_dict = json.loads(\
response.content.decode('utf-8'))
self.assertEqual(json_dict['name'],instance.name)
Однако, когда я запускаю этот тест я действительно получаю:
raise ContentNotRenderedError('The response content must be 'django.template.response.ContentNotRenderedError: The response content must be rendered before it can be accessed.
кажется, что рамки Джанго REST будет иметь некоторые другой подход к модульному тестированию viewsets
, mixins
и views
.
Но я не могу понять, что мне делать вместо этого.
На официальной странице документов предлагается использовать реальные URL-адреса, но это больше подходит для приемочных испытаний, а не для модульных тестов.
Эй @canufeel мне было интересно, вы нашли мой ответ полезным? –