Tôi đã tiếp xúc với mô hình cơ sở dữ liệu bằng cách sử dụng bộ khung và bộ định tuyến khung nhìn Django-rest, và tôi đang cố gắng viết các bài kiểm tra đơn vị cho nó.Làm thế nào để viết các bài kiểm tra đơn vị cho djiu-rest-framework api?
Dưới đây là API của tôi và mã kiểm tra
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
Unit-kiểm tra
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)
Tôi không muốn để kết nối với cơ sở dữ liệu để kiểm tra đơn vị vì nó nằm trong các thử nghiệm tích hợp.
Có cách nào để giả lập cơ sở dữ liệu không? Tôi biết làm thế nào để áp dụng chế nhạo cho các chức năng xem tiêu chuẩn nhưng ở đây chế giễu không hoạt động.
- Làm cách nào để viết các bài kiểm tra đơn vị cho REST-API của tôi?
- Làm thế nào để giả lập cơ sở dữ liệu trong các bài kiểm tra đơn vị của tôi?
Tôi không quen thuộc với dự án này vì vậy tôi không thể giúp bạn cụ thể ở đó nhưng hãy tìm tài liệu để tìm lớp/chức năng nào thực sự kết nối với cơ sở dữ liệu và giả lập trong thử nghiệm của bạn. –
Nếu bạn muốn kiểm tra API, bạn không thể sử dụng kiểm tra đơn vị nào cả. Kiểm tra API có nghĩa là gọi chế độ xem và nhận dữ liệu được định dạng tốt từ cơ sở dữ liệu thử nghiệm. Đây sẽ là một bài kiểm tra tích hợp như bạn đã viết. Sự khác biệt giữa các bài kiểm tra đơn vị và tích hợp không chỉ chạm vào cơ sở dữ liệu hay không. – Norman8054