2011-08-18 6 views
0

Donc, j'essaie actuellement de tester une application Rails avec Mongoid avec du concombre. J'ai tout configuration (ou alors je crois) pour que le test suivant se déroulera:Concombre et SUPPRIMER avec Mongoid

Feature: Create and manage about entries 
    In order to use the about data effectively 
    As an application consumer 
    I want to create and manage some about entries 

    Scenario: Create about entries 
    Given the following abouts exist 
     | title    | body_copy | 
     | "About entry #1" | "hello body!" | 
    When I go to the list of about entries 
    Then I should see "About entry #1" 

    Scenario: Create and retreive specific about entry 
    Given the following abouts exist 
     | id      | title    | body_copy | 
     | 4e4d37756ea257f031000003 | "About entry #1" | "hello body!" | 
    When I go to about entry with id 4e4d37756ea257f031000003 
    Then I should see "About entry #1" 

Dans mon dossier chemins, je les entrées suivantes pour soutenir les tests ci-dessus:

when /^the list of about entries$/i 
    '/abouts' 
when /^about entry with id (.+)$/i 
    "/abouts/#{$1}" 

Ces essais fonctionne très bien. Cependant, j'ai besoin de tester l'action de suppression. J'ai fait quelques recherches en ligne mais tout semble passer par l'interface utilisateur pour supprimer ces éléments et le problème est que mon application Rails ne sert que des fichiers JSON et des fichiers JSON et j'ai besoin d'une meilleure façon de tester les choses L'interface utilisateur est impliquée. En ce qui concerne les moqueurs, j'utilise les mocks par défaut construits dans Pickle. Je suis ouvert à l'utilisation d'autres logiciels de moquerie si nécessaire, comme usine-fille, mais vous devrez me donner un retour détaillé comment je peux câbler ça. Ce que j'ai actuellement mon test de suppression (qui ne fonctionne pas) est:

Scenario: Delete about 
    Given the following abouts exist 
     | title | body_copy | 
     | title 1 | body_copy 1 | 
     | title 2 | body_copy 2 | 
     | title 3 | body_copy 3 | 
     | title 4 | body_copy 4 | 
    When I delete the 3rd about 
    Then I should see the following abouts: 
     | Title | body_copy | 
     | title 1 | body_copy 1 | 
     | title 2 | body_copy 2 | 
     | title 4 | body_copy 4 | 

Le problème est que le test généré automatiquement (voir ci-dessus) utilise l'appel de méthode click_link "Destroy" mais qui ne fonctionnera pas.

Répondre

0

Vous devrez modifier l'implémentation de l'étape de suppression (dans votre web_steps.rb si vous utilisez les valeurs par défaut générées par le concombre) pour envoyer une requête HTTP DELETE. Je recommanderais la gemme RestClient pour cela, mais il y a beaucoup d'autres choix. Le livre de concombres actuellement en version bêta de PragProg comporte un chapitre sur l'utilisation de Cucumber pour tester les API REST comme celle-ci.

+0

Pour envoyer une requête HTTP DELETE, vous devez avoir le serveur rails en cours d'exécution. Je ne suis pas très familier avec les tests Rails, alors dites-vous que c'est déjà le cas lorsque j'exécute mes tests et qu'une instance rails est également en cours d'exécution? Un exemple de définition d'étape serait extrêmement utile. Merci! –

Questions connexes