Django-rest-framework 뷰 세트와 라우터를 사용하여 데이터베이스 모델을 공개했습니다. 단위 테스트를 작성하려고합니다. 여기 Django-rest-framework API의 단위 테스트를 작성하는 방법은 무엇입니까?
내 API 및 테스트 코드Viewsets.py
class Model1ViewSet(viewsets.ReadOnlyModelViewSet):
model = Model1
serializer_class = Model1Serializer
filter_class = Model1Filter
filter_backends = (filters.DjangoFilterBackend, filters.OrderingFilter)
ordering = ('id', 'cl1')
Serializer.py
class Model1Serializer(serializers.HyperlinkedModelSerializer):
chip = serializers.HyperlinkedRelatedField(view_name="some-detail")
class Meta:
model = Model1
fields = ('url', 'id', 'cl1', 'cl2', 'cl3', 'cl4')
depth = 1
단위 - 테스트
from rest_framework.test import APIClient
class TestModel1Api(unittest.TestCase):
def setUp(self):
self.client = APIClient()
def test_Model1_list(self):
response = self.client.get(reverse('Model1-list'))
self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_Model1_detail(self):
mm_objs = Model1.objects.all()
if mm_objs:
response = self.client.get(reverse('Model1-detail', args=[mm_objs[0].id]))
self.assertEqual(response.status_code, status.HTTP_200_OK)
있습니다 내가 원하지 않는 데이터베이스에 연결하기 단위 테스트의 경우 통합 테스트에 해당하므로
데이터베이스를 조롱하는 방법이 있습니까? 표준보기 기능을 위해 조롱을 적용하는 방법을 알고 있지만 여기 조롱은 작동하지 않습니다.
- 내 REST-API에 대한 단위 테스트를 작성하는 방법은 무엇입니까?
- 단위 테스트에서 데이터베이스를 조롱하는 방법은 무엇입니까?
저는이 프로젝트에 익숙하지 않아 특별히 당신을 도울 수는 없지만 문서에서 어떤 클래스/기능이 실제로 데이터베이스에 연결되어 있는지 테스트 해보십시오. –
API를 테스트하려면 단위 테스트를 전혀 사용할 수 없습니다. API 테스트는 뷰를 호출하고 테스트 데이터베이스에서 올바른 형식의 데이터를받는 것을 의미합니다. 당신이 쓴대로 이것이 통합 테스트 일 것입니다. 단위 테스트와 통합 테스트의 차이점은 데이터베이스를 만지는 것만이 아니라는 것입니다. – Norman8054