Python / Django - Как получить все методы в классе unittest для совместного использования в одной базе данных?
Это мой код:
Ссылка на мой импорт находится здесь: https://github.com/django/django/blob/master/django/core/urlresolvers.py https://github.com/django/django/blob/master/django/contrib/auth/models.py https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/status.py https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/test.py
from django.core.urlresolvers import reverse
from django.contrib.auth.models import User
from rest_framework import status
from rest_framework.test import APITestCase
class UserTests(APITestCase):
def test_create_user(self):
"""
Ensure we can create a new user object.
"""
url = reverse('user-list')
data = {'username': 'a', 'password': 'a', 'email': 'a@hotmail.com'}
# Post the data to the URL to create the object
response = self.client.post(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
# Check the database to see if the object is created.
# This check works.
self.assertEqual(User.objects.count(), 1)
def test_get_user(self):
"""
Ensure we can get a list of user objects.
"""
# This fails and returns an error
self.assertEqual(User.objects.count(), 1)
Когда я запускаю тест, возникает ошибка: AssertionError: 0 != 1
потому что в функции test_get_user
Пользователь создал в test_create_user
не видно Есть ли способ для меня, чтобы все методы в классе совместно использовать одну и ту же базу данных, чтобы, если я создаю пользователя в test_create_user
Я могу получить доступ к нему в методах, которые идут ниже этого?
Изменить. Причина, по которой я хочу, чтобы они использовали одну и ту же базу данных для всех методов, заключается в том, что все мои тестовые примеры в UserTests
класс должен быть создан пользователем, поэтому я не хочу повторять один и тот же код все время, даже когда он тестируется в test_create_user
,
Я знаю, что могу использовать def setUp(self)
но я делаю тест "создание пользователя" в своем первом методе, поэтому я хочу иметь возможность проверить, могу ли я создать его сначала, прежде чем создавать его в def setUp(self)
,
1 ответ
Вы должны настроить свои данные явно в каждом тесте. Тесты не должны зависеть друг от друга.