Императивные и декларативные шаги в 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

Я не совсем понимаю картину.

Что я понял, так это то, что декларативное позволяет вам делать все, что вы хотите, пока проходит результат, а императив более многословен.

Тем не менее, я не чувствую, что я понял это.

Может кто-нибудь объяснить это немного больше. Каковы различия и какую мне выбрать?

Ответы на вопрос(1)

Ваш ответ на вопрос