Использовать тестовую базу данных для тестирования представлений - PullRequest
0 голосов
/ 15 ноября 2018

Я пишу тесты для моих представлений django-приложений, и я новичок в этом.Я знаю, что перед запуском тестов создается новая база данных, которая содержит только данные, которые создаются во время выполнения тестов, но в тестах моего представления я выполняю вызовы API по URL-адресу на моем сервере, который использует базу данных по умолчанию, а не тестбазы данных следующим образом.

  def test_decline_activity_valid_permission(self):
        url = 'http://myapp:8002/api/v1/profile/' + self.profileUUID + '/document/' + \
              self.docUUID + '/decline/'
        response = requests.post(
            url,
            data=json.dumps(self.payload_valid_permission),
            headers=self.headers,
        )
        self.assertEquals(response.status_code, status.HTTP_201_CREATED)

Я хочу знать, что если мы можем использовать тестовую базу данных для тестирования наших представлений или нет.И в чем разница между использованием запроса и использованием клиента?

1 Ответ

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

Вы можете попробовать использовать Django LiveServerTestCase.Это работает как TransactionTestCase, но запускает сервер на localhost, указывая на тестовую базу данных.Он запускается / останавливается в начале / конце каждого теста.

Затем можно настроить URL-адрес в своем тесте так, чтобы он указывал на этот локальный сервер.Django предоставляет self.live_server_url для доступа к URL-адресу сервера.

Как уже упоминалось в комментариях, тестовый клиент Django позволяет тестировать представления без выполнения реальных HTTP-запросов.В то время как библиотека запросов , которую вы используете в своем тесте, будет отправлять и получать реальные HTTP-запросы и ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...