2009-08-31 6 views
0

Je teste une application qui est essentiellement une application de gestion des messages - un message arrive, son contenu est analysé, puis il est envoyé ailleurs pour traitement. L'application n'est pas construite en Ruby. Comme vous pouvez l'imaginer, l'approche de test principale consiste à générer un tas de différents types de messages (assez complexes), en les chargeant dans l'application, en attendant quelques secondes puis en s'assurant qu'ils sont envoyés au bon endroit. Fonctionnellement, le test se passe bien, mais j'ai actuellement tous les messages de test & destinations de message souhaitées définies dans le code Ruby - je voudrais les déplacer vers un fichier YAML, ou (deuxième choix) un base de données. Je préférerais utiliser un fichier YAML sur une base de données, car il est plus facile de contrôler la version et, pour les testeurs non techniques, de modifier directement le contenu du message.Concombre et gestion des données de test pour les applications non-Ruby

Existe-t-il un moyen "recommandé" d'implémenter ce type de gestion de données dans Cucumber? Cela ressemble à une approche de montage, mais les montages ont toujours consisté à remplir une base de données à partir d'un fichier, puis à utiliser la base de données pour le tester, et je ne suis pas sûr à 100% que ce soit le meilleur problème.

Répondre

3

Je crois que ce que vous serez le plus heureux avec un Scenario Outline. Vous pourriez peut-être créer un fichier yaml et le charger à partir d'une étape, mais cela ne constituerait pas un résultat de test très utile. Ce que vous (je pense) aimerais vraiment, c'est de voir chaque message et sa destination triés en fonction du temps qu'il a passé ou qu'il a échoué. L'exemple ci-dessous est pour les connexions échouées, mais il obtient le point à travers.

Scenario Outline: Failed Login 
    Given I am not authenticated 
    When I go to "/login" 
    And I fill in "login" with "<mail>" 
    And I fill in "password" with "<password>" 
    And I press "Log In" 
    Then the login request should fail 
    Then I should see an error message 

    Examples: 
    | mail   | password  | 
    | not_an_address | nil   | 
    | [email protected]  | 123455   | 
    | [email protected] | wrong_paasword | 

Chaque exemple devient vert, rouge ou jaune selon qu'il a travaillé, a échoué ou était en cours.

+0

Cela m'a semblé très intuitif mais j'ai remarqué que la dernière recommandation de wiki de cucumber est de ne pas co-implanter des tests et des données. Je comprends que c'est un très vieux q/a donc les choses ont peut-être changé. Avez-vous utilisé quelque chose comme .. https://github.com/cheezy/data_magic et des idées sur elle ou des gemmes similaires? – HakunaM

Questions connexes