Как я могу сделать тест полагаться на результат другого теста - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть служба AuthenticationService, предоставляющая такие методы, как executeLogin, executeSignup и так далее. При тестировании метода executeSignup я использую 2 теста:

  • testSuccessfulSignup ()
  • testSignupAmbigiousIdentity ()

Первый тест создает новую учетную запись пользователя, а второй тест пытается создать пользователя с той же идентификационной информацией (например, с тем же адресом электронной почты). Это приводит к тому, что testSignupAmbigiousIdentity полагается на предыдущий успешный результат testSuccessfulSignup, который, на мой взгляд, немного неуклюж, особенно если простое переупорядочение тестов (например, размещение их в алфавитном порядке) может испортить процедуру теста.

Существуют ли передовые методы работы с тестами, основанными на предыдущих тестах?

TL; DR Как сделать так, чтобы тестовый метод основывался на успешном выводе другого тестового метода с использованием PHPUnit (3.6).

Ответы [ 3 ]

2 голосов
/ 06 февраля 2012

Вы можете использовать аннотацию @depends .

Сказав, что, вероятно, лучше реструктурировать тест, чтобы использовать приборы для настройки известного хорошего состояния для тестирования вместодинамически настраивать это состояние в других, не связанных тестах.

1 голос
/ 06 февраля 2012

Любой тест, который вы пишете, должен иметь возможность работать самостоятельно и не зависеть от других тестов. Мало того, что результат ваших неудачных тестов будет указывать на неправильный тест, также могут быть сценарии, в которых вы хотите выполнить только часть ваших тестов (неудача приходит только в голову).

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

0 голосов
/ 06 февраля 2012

Посмотрите (или, если вы используете мастер), просто найдите настройки и демонтаж. Идея состоит в том, что у каждого тестового класса есть метод, который он запускает до того, как будут выполнены какие-либо методы тестирования, и другой после того, как все выбранные тесты будут выполнены.

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