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 ответ

Решение

Вы должны настроить свои данные явно в каждом тесте. Тесты не должны зависеть друг от друга.

Другие вопросы по тегам