2012-06-29 4 views
0
{ 
     Assert.That(_editUserPage.State.SelectedText, Is.EqualTo("Illinois")); 
     _editUserPage.State.SelectedText = "New York"; 
     Assert.That(_editUserPage.State.SelectedText, Is.EqualTo("New York")); 
     _editUserPage.SaveChanges(); 
     Assert.That(_editUserPage.State.SelectedText, Is.EqualTo("New York")); 
    } 

В моем примере выше я меняю состояние пользователя из штата Иллинойс в Нью-Йорк; мой вопрос: должен ли я изменить состояние обратно на значение orignal Illiois в конце теста?Наилучшие методы настройки/снятия селена - возврат данных в исходное состояние

У меня есть примерно 20 других независимых тестов в одном файле, и я хотел знать, что лучше всего подходит для возврата данных в исходное состояние. Мы используем setup/teardown для всего набора тестов, только не в каждом отдельном тесте.

ответ

1

Лучшая практика до сих пор, который я видел был таков:

  1. Тест был один ввод тестовых данных (Excel лист)
  2. Каждый прогон бы добавить префикс к данным (например, имя Павла => Test01_Pavel)
  3. испытания было проверить, что такие данные не существует в системе
  4. испытания созданных данных тестирования в соответствии с входным и проверяются, что эти данные присутствуют
  5. Test удалены все данные тестирования и вера если эти данные будут удалены.

Но действительно лучший ответ - «это зависит». Я, лично, я не удалять любые тестовые данные из системы, так как

  • Условия испытаний строго отделено от прод один
  • Тестовые данные могут быть полезны в дальнейшем во время тестирования производительности (например, загрузки списка пользователей из системы)

Таким образом, реальный вопрос, который вы должны спросить себя:

  • удаление данных испытаний в конце принести ли что-нибудь хорошее для вас?
  • И наоборот: что произойдет, если тестовые данные останутся в системе?

Кстати, если вам кажется, что «приложение обязательно сломается, если в нем будет слишком много глупостей/фиктивных данных», вы должны обязательно проверить этот сценарий. Представьте, что ваша услуга станет популярной за ночь (Чарли Шин читает об использовании вашей страницы :)), и миллионы пользователей хотели бы зарегистрироваться.

0

Подход в компании я работаю является:

  1. раскрутить выделенный тестовой среды в облаке (AWS)
  2. Стартует набор тестов
  3. Каждый тест будет вставить данные, которые он требуется
  4. После того, как тестовый пакет завершен, слейте серверы, вкл. db

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

Смежные вопросы