Я пишу тестовые примеры для своего проекта, написанные на django, он дает неожиданный вывод, который выглядит как {u'message': u'', u'result': {u'username': u'john', u'user_fname': u'', u'user_lname': u'', u'cur_time': 1442808291000.0, u'dofb': None, u'sex': u'M', u'u_email': u'', u'role': u'', u'session_key': u'xxhhxhhhx', u'mobile': None}, u'error': 0}
Здесь мы видим, что другое поле пуст, потому что я только что создал пользователя в тестовых случаях, но не получил другую информацию. база данных создается из производственной базы данных, но не инициализируется, она остается пустой. Именно поэтому он дает другое поле пустым. Он запрашивает пустую базу данных.Как инициализировать тестовую базу данных в django?
Я написал следующий тестовый пример для login REST API. и запускать его на python manage.py test. Пожалуйста, скажите мне, как решить вышеуказанную проблему.
Примечание: Если следующий подход неверен, вы можете предложить другой подход.
from django.test import TestCase
from django.test.client import Client
from django.contrib.auth.models import User
import json
class TestAPI(TestCase):
def setUp(self):
self.c=Client() #Create Client object that simulates request to a url similar to a browser can
User.objects.create_user(username="john", password="xxx")
def test_login_api(self):
credential_test=dict()
c_test =Client()
credential_test["username"]="john"
credential_test["password"]="xxx"
data=json.dumps(credential_test)
#print 'data is'
#print data
response_test =c_test.put('/api/login', data)
content_test=json.loads(response_test.content)
print 'content'
Django test client ожидает, что словарь будет использоваться как postdata, а не json-дамп словаря. И почему вы выполняете аутентификацию с помощью PUT вместо POST? поместите i обычно для загрузки файлов – e4c5