Лучшая практика использования файла функций Specflow
Заранее спасибо за помощь.
Мой вопрос относится к лучшим практикам в файле функций SpecFlow?
Вопрос:
Использование команды ожидания внутри файла возможностей считается плохой практикой.
Пример:
And i click on the username
And wait 5 seconds
And i input new value into last name
Команда ожидания вызывает 5-секундное ожидание. Я делаю это, чтобы убедиться, что страница загружена, чтобы предотвратить ошибки "элемент не найден" или другие ошибки. В основном, чтобы убедиться, что у меня есть чистая страница для манипулирования.
Не лучше ли использовать ожидание внутри самого файла Step?
//using Fluent Automation
I.WaitUntil(() => ());
//or
I.Wait(); //timespan
Моя причина не использовать ожидание Fluent Automation:
При использовании метода Fluent Automation вы зависите от времени ожидания по умолчанию в объекте настроек. Тайм-аут по умолчанию в некоторых случаях может быть недостаточно длинным или длинным. Мне кажется очень многословным постоянно изменять / сбрасывать объект "Настройки" с единственным преимуществом - удалять команды ожидания из файла объектов.
Так что же такое лучшая практика?
Спасибо,
-n
1 ответ
Я думаю, что наилучшей практикой является сохранение файла функций для ваших сценариев и отсутствие подробностей реализации.
Поскольку мы следуем процессу BDD ( http://dannorth.net/introducing-bdd), то файл функций является результатом этого разговора между вами и экспертом процесса, а сценарий представляет собой шаги, которые вы собираетесь предпринять для докажите, что ваша функциональность работает для этого примера. Можно надеяться, что эти этапы определяют бизнес-процесс и могут выполняться любой системой, а не только той, которую мы сейчас разрабатываем. В идеале эта логика отражает наше намерение и может быть повторно использована в любых будущих системах, которые могут заменить текущую.
Так что я просто не вижу, что вы говорите, что вам нужно подождать
....
Хотя вы можете сказать
When the page has loaded
и это довольно хорошо отображается на беглую автоматизацию.