Django REST Framework를 사용하여 작성한 REST API에 대한 기능 테스트를 작성하려고합니다. 이 프레임 워크는 대부분 장고 장군이기 때문에 그다지 구체적이지 않습니다. Django RESTful API의 기능 테스트 작성
이
내가- 는 사용자가 테스트 클라이언트
테스트를 사용하여 API에서 토큰 테스트 클래스
setUp
방법으로 사용자를 작성하고 싶은 것입니다 .py from django.test import LiveServerTestCase
from django.contrib.auth.models import User
from django.test.client import Client
from rest_framework.authtoken.models import Token
class TokenAuthentication(LiveServerTestCase):
def setUp(self):
user = User.objects.create(username='foo', password='password', email="[email protected]")
user.save()
self.c = Client()
def test_get_auth_token(self):
user = User.objects.get(username="foo")
print user # this outputs foo
print Token.objects.get(user_id = user.pk) # this outputs a normal looking token
response = self.c.post("/api-token-auth/", {'username': 'foo', 'password': 'password'})
print response.status_code # this outputs 400
self.assertEqual(response.status_code, 200, "User couldn't log in")
테스트를 실행하면 상태가 200이 아닌 200으로 반환되므로 사용자가 인증되지 않았습니다. 이미 데이터베이스에있는 사용자의 자격 증명을 입력하면 통과합니다. 따라서 테스트 클래스에서 작성된 레코드는 자체 테스트 메소드 내에서만 액세스 할 수 있다고 가정합니다. 이는 아마도 유닛 테스트를 위해 설계 되었기 때문일 것입니다. 그러나 데이터베이스의 데이터를 사용하여 테스트를 수행하면 데이터가 변경되면 실패합니다.
테스트를 실행하기 전에 데이터를 작성해야하는이 기능 테스트는 장고에서 어떻게 수행해야합니까?
글쎄, 당황 스럽네요, 고마워요! –