Зависимости между тестами PHPUnit - PullRequest
1 голос
/ 03 октября 2011

Я пишу тестовый пример PHPUnit для API (поэтому это не совсем модульный тест), и я думаю о том, чтобы иметь тест, от которого будут зависеть все другие тесты.

Тесты в тестовом примере отправляют запросы API. Большинство из этих запросов требует пользователя. Данный тест создаст пользователя, которого будут использовать другие тесты.

Это была бы ужасная идея?

1 Ответ

3 голосов
/ 03 октября 2011

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

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

  2. Вы можете абстрагировать поставщиков данных (базы данных, файловые элементы и т. Д.) С помощью своих заглушек, которые также будут возвращать предсказуемые данные (имя пользователя и т. Д.).

После этого вы просто протестируете свой запрос и увидите, что он верен.

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

А затем вы можете проверить подключение API, и т.д ..

РЕДАКТИРОВАТЬ.Если у вас есть зависимости в вашем коде, и вам трудно абстрагировать поставщиков или веб-службу конечной точки, вам может потребоваться настроить код так, чтобы он принимал ссылки на эти объекты в качестве параметров.Чем в ваших тестах вы меняете объекты, переданные с вашими объектами-заглушками.В процессе производства вы передаете правильные ссылки, так что вам не нужно будет менять свой код для тестирования.

Надеюсь, я был ясен.Если нет, спросите меня, и я смогу объяснить лучше, может быть, я плохо понял ваш вопрос

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