Вопрос

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

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

Это было полезно?

Решение

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

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

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

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

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

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

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

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top