Императивные и декларативные шаги в Rspec
Интересно, что такое императив против декларативных шагов в Rspec?
Вот пример кода из книги Rspec:
Scenario: transfer money (declarative)
Given I have $100 in checking
And I have $20 in savings
When I transfer $15 from checking to savings
Then I should have $85 in checking
And I should have $35 in savings
Scenario: transfer money (imperative)
Given I have $100 in checking
And I have $20 in savings
When I go to the transfer form
And I select "Checking" from "Source Account"
And I select "Savings" from "Target Account"
And I fill in "Amount" with "15"
And I press "Execute Transfer"
Then I should see that I have $85 in checking
And I should see that I have $35 in savings
Я не совсем понимаю картину.
Что я понял, так это то, что декларативное позволяет вам делать все, что вы хотите, пока проходит результат, а императив более многословен.
Тем не менее, я не чувствую, что я понял это.
Может кто-нибудь объяснить это немного больше. Каковы различия и какую мне выбрать?