2010-10-26 8 views
0

Je veux passer des données de configuration de type YML au scénario de concombre.Comment passer une structure de données de type YML au scénario de concombre?

par exemple:

category: 
    subcategory: 
    name: whay 

comment faire? grâce

+0

Essayez-vous de configurer l'application que vous testez avec YML? C'est à dire. avez-vous une méthode configureMyApp (yml) que vous voulez appeler avec une étape de concombre? – Clinton

+0

oui! c'est ma signification :) – why

Répondre

1

Suite à une approche axée sur les tests, envisager de séparer la logique d'analyse YML de votre logique d'application, avec quelque chose comme:

def my_app_logic(my_hash) 
    # app logic goes here 
end 

def my_yml_parsing_logic 
    # load a file, or get a yml string 
    # parse it and return a hash 
end 

Ensuite, vous écrire des tests unitaires pour vérifier la logique de l'analyse syntaxique de YML et tout son bord cas. Vous pouvez également écrire des tests unitaires pour la logique de l'application sans avoir à vous soucier de yml.

Pour vos tests de concombre, pensez à se moquant vers le haut (ou à l'aide d'une usine pour créer) un bon hachage pour les tests, et utiliser ce hachage dans la définition de votre étape, vous pouvez donc avoir une étape comme:

When I run my app logic on a hash with 5 categories 

ou quelque chose de simple comme ça.

+0

Merci! assez bon point! Et je veux savoir s'il y a trop de mocks, est-ce que les tests de concombre ont un sens? – why

+0

J'utilise le test du concombre pour les tests fonctionnels et d'intégration. Il est donc logique de définir et de tester les fonctionnalités de haut niveau. J'aime utiliser des histoires pour BDD pour me concentrer sur mes efforts de développement et m'assurer que j'ai les fonctionnalités de base définies et fonctionnelles, donc en ce sens, je créerais de bonnes données pour représenter un cas d'utilisation typique. J'aime vraiment les usines, car cela me permet d'utiliser les mêmes usines pour rspec et concombre. –