J'utilise Cucumber pour tester le comportement d'une application de bout en bout dans mon service Web basé sur Rails. J'ai actuellement un aperçu du scénario qui ressemble à ce qui suit (constituant un scénario hypothétique ici de créer un utilisateur avec un autre utilisateur):Méthode correcte d'interaction avec un service Web RESTful utilisant le concombre
Scenario Outline: Create a user with another user
Given I want to create a user as a user "<user>"
When I create a user with name "<name>"
And the user's age is "<age>"
Then then the response should be "<response>"
Scenarios: Create user with 3 args
| user | name | age | response |
| bob | joe | 25 | <some_xml_response> |
Je vais avoir un peu de difficulté à comprendre comment je devrais écrire l'étape définitions pour ce contour. Fondamentalement, je suis actuellement en train de concaténer un blob XML (pour le nom + l'âge) et j'ai besoin de faire quelque chose de similaire à la façon dont rspec utilise: post à publier sur un contrôleur et voir une réponse. Mes définitions d'étape ressemblent actuellement à:
Given /^I want to create a user with another user "([^"]*)"$/ do |user|
@reqxml << "<user><creator>#{user}</creator>"
end
When /^I create a user with name "([^"]*)"$/ do |name|
@reqxml << "<name>#{name}</name>
end
And /^the user's age is "([^"]*)"$/ do |age|
@reqxml << "<age>#{age}</age>"
end
Then /^then the response should be "([^"]*)"$/ do |response|
# ?? not sure if I can use rspec :post here?
end
Quelle est la meilleure façon d'améliorer ce contour de concombre? J'ai beaucoup plus que je veux tester. Dans rspec, c'est plutôt simple et peut-être que la bonne réponse est de coller ceci dans RSpec. Mais je veux vraiment obtenir une meilleure utilisation de Cucumber et avoir une meilleure image "plus grande" avec des tests d'histoire d'utilisateur de bout en bout tel que celui ci-dessus.