Сброс / очистка данных теста WatiN - PullRequest
3 голосов
/ 30 апреля 2009

Мне интересно, как люди в настоящее время сбрасывают свои данные / очищают остатки тестов для своих тестов WatiN / Wartir?

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

Ответы [ 4 ]

3 голосов
/ 06 мая 2009

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

Использование транзакций Подход, который используется при модульном тестировании, заключается в том, что вы «оборачиваете» весь тест в транзакцию и по завершении теста откатываете транзакцию обратно. В .net вы можете использовать System.Transactions для этого.

Создание "заглушки" Создайте страницу в своем приложении, которая использует существующую бизнес-логику для удаления ваших данных. Эта страница должна быть защищена и в идеале даже не развернута в производство. Такой подход я бы рекомендовал.

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

Очистить напрямую Создайте несколько классов в своем тестовом коде для доступа к данным и их очистки.

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

Используйте Linq to Sql AFAIK, если вы используете Linq to sql, он работает в памяти и автоматически упаковывает все обновление в транзакцию. Если вы просто не вызываете SubmitChanges (); Тогда у тебя все будет хорошо, но я сам не проверял.

1 голос
/ 30 апреля 2009

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

0 голосов
/ 30 апреля 2009

Майк - твой вопрос не уникален для Watir / WatiN. Он применяется для любого тестирования пользовательского интерфейса, поэтому ищите похожие решения для Selenium, Windmill и даже безголовых интеграционных тестов (HtmlUnit, API-тесты и т. Д.). Я лично пару раз отвечал на этот вопрос в StackOverflow.

0 голосов
/ 30 апреля 2009

WatiN для тестирования пользовательского интерфейса.

Чтобы протестировать сценарий, который вы ищете, вы можете сгенерировать идентификатор пользователя, используя код c #, который сделает его уникальным (по сравнению с тем, как он хранится при создании теста).

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