Pasos imperativos y declarativos en Rspec
Me pregunto de qué se tratan los pasos imperativos vs declarativos en Rspec.
Aquí hay un código de ejemplo del libro 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
No entiendo bien la imagen.
Lo que he entendido es que el declarativo te permite hacer lo que quieras mientras pase el resultado, y el imperativo es más detallado.
Sin embargo, no creo que haya entendido esto.
¿Alguien podría explicar esto un poco más? ¿Cuáles son las diferencias y cuál debo elegir?