Django DRF APITestCase цепочка тестов - PullRequest
0 голосов
/ 27 ноября 2018

Например, я хочу написать несколько тестовых примеров, подобных этому

class Test(APITestCase):
    def setUp(self):
        ....some payloads

    def test_create_user(self):
        ....create the object using payload from setUp

    def test_update_user(self):
        ....update the object created in above test case

В приведенном выше примере ошибка test_update_user не удалась, так как, скажем, не удалось найти объект пользователя.Поэтому для того, чтобы этот тестовый сценарий работал, я должен вместо этого создать пользователя test_update_user.

Я нашел одно возможное решение - запустить команду создания пользователя в setUp.Тем не менее, я хотел бы знать, есть ли способ цепочки тестовых наборов для запуска одного за другим без удаления объекта, созданного из предыдущего тестового набора.

1 Ответ

0 голосов
/ 27 ноября 2018

Тесты инфраструктуры отдыха включают вспомогательные классы, которые расширяют существующую инфраструктуру тестирования Django и улучшают поддержку для выполнения запросов API.Поэтому все тесты для вызовов DRF выполняются с помощью встроенного в Django тестового фреймворка.

Важным принципом юнит-тестирования является то, что каждый тест должен быть независимым от всех других.Если в вашем случае код в test_create_user должен предшествовать test_update_user, то вы можете объединить оба в один тест:

def test_create_and_update_user(self):
        ....create and update user

Тесты в Django выполняются параллельно, чтобы минимизировать время, необходимое для запуска всех тестов.,Как вы сказали выше, если вы хотите разделить код между тестами, нужно настроить его в методе setUp

def setUp(self):
    pass
...