2009-04-30 4 views
3

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

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

ответ

3

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

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

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

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

Очистка непосредственно Постройте несколько классов в тестовом коде, чтобы получить доступ к данным и очистить их.

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

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

+0

Как вы будете работать с System.Transations, когда вы совершаете транзакционные транзакции в LinqToSql? – Mike737

-2

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

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

+0

Я понимаю, что WatiN предназначен для тестирования автоматизации пользовательского интерфейса, но он также полезен для функционального тестирования, в котором мы пытаемся его использовать. К сожалению, это уже то, что мы делаем. Проблема в том, что это не очень элегантно и может время от времени прерываться случайным образом, а тестовая база данных раздувается через некоторое время. То, что я действительно ищу, - это транзакционное решение, в котором данные можно отбросить после теста. – Mike737

1

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

0

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

+0

можете ли вы добавить ссылку на свои ответы, пожалуйста? – Buzzer