Несмотря на то, что я писал модульные тесты за 20 с лишним лет, я новичок в Gherkin, и мне была поручена реализация истории для файла .feature, который сводится к чему-то вроде этого:Охота - сохранение состояния между сценариями
Scenario: a
Given that the app is open
When I open a certain dialog
Then it has a thing somewhere
Scenario: b
Given that the dialog from 'a' is open...
# Imagine here a long chain of scenarios, each depending on the previous
Scenario: n
Given that the previous 'n' steps have all completed....
То есть, длинная, длинная цепочка сценариев, каждый в зависимости от состояния системы в соответствии с конфигурацией его предшественником.
Это не относится к кому-то, используемому для модульного тестирования, но эти сценарии не будут разделены и выполняться отдельно.
Какая у вас лучшая практика?
Должен ли я переписать один очень длинный сценарий?
Я уже использую «объект страницы», чтобы сохранить большую часть моего кода из определений шагов. Должен ли я кодировать шаги как одиночные вызовы, которые могут быть повторно использованы в последующих сценариях?
Я использую огурец в Javascript.
Я согласен с тобой 99.99% времени. В течение 0,01% времени, когда вы думаете, что использовать состояние из предыдущего сценария, я не согласен. Просто мое догматическое мнение. Это состояние требует, чтобы сценарии выполнялись в определенном порядке, а не на сетке. –
Единственный раз, когда я бы рекомендовал его, - это когда вы все еще разрабатываете определение шага для предыдущего сценария, так что новый сценарий все еще проходит в CI. В идеальном мире будет указано определение шага для предыдущего сценария, однако может быть, что у вас есть младший тестер, новый из университета, пишущий файлы, который, возможно, не полностью понимает этот язык. После того, как определение шага было создано или предыдущий сценарий был превращен в фон, он становится устаревшим и поэтому будет изменен на способ его выполнения. –
Спасибо, @KyleFairns. Я отредактировал вопрос, чтобы попытаться подчеркнуть, что функция имеет очень длинную цепочку сценариев, каждая из которых зависит от ее предшественника. – LeeGee