Etapas imperativas e declarativas em Rspec
Gostaria de saber o que é imperativa vs etapas declarativas no Rspec.
Aqui está um exemplo de código do livro 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
Ainda não entendi bem.
O que entendi é que declarativo permite que você faça o que quiser, desde que o resultado passe, e o imperativo é mais detalhado.
No entanto, não acho que tenha entendido isso.
Alguém poderia explicar isso um pouco mais. Quais são as diferenças e qual devo escolher?