Есть ли способ ввести макет при использовании белых для приемочного тестирования? - PullRequest
0 голосов
/ 11 ноября 2010

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

Возможно ли это?Или я должен использовать другой подход?

1 Ответ

2 голосов
/ 14 ноября 2010

Белый работает с использованием Microsoft UI Automation, которая просматривает любой поддерживаемый графический интерфейс.Он не беспокоится о коде под ним, и вы не можете взаимодействовать с этим кодом так же, как вы могли бы с помощью модульного теста.

Обычно вы запускаете свое приложениечерез его .exe, затем используйте White для его автоматизации.Чтобы запустить его только с клиентом, нужно, чтобы сам процесс запускался с контекстом макета приложения.Это означало бы соответствующую компиляцию .exe или наличие двух разных исполняемых файлов, один из которых правильно настраивает ваши пакеты, а другой - нет.

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

Я бы выбрал один из следующих подходов:

  • Повторное создание базы данных для каждого запуска теста, заполнение еесоответствующий контекст, если требуется

  • Пометьте данные, сгенерированные тестом, датой-временем, чтобы вы могли отличить их от обычных данных

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

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

...