2010-08-04 6 views
0

J'utilise ce type de code dans mon code dans mes tests unitaires. J'utilise FactoryGirl à la place des appareils. Je trouve que je me répète beaucoup et que les fonctions d'aide seraient très utiles. Quelle est la meilleure façon de créer et d'appeler une fonction d'assistance dans le test unitaire? Y at-il un before_filter disponible comme dans les contrôleurs (j'ai essayé de le mettre, mais c'est juste une méthode non définie). Toute aide est appréciée!Fonctions auxiliaires dans les tests unitaires Rails

Répondre

5

Vous pouvez ajouter des fonctions utilitaires à vos tests unitaires sans problème. Tant que vous ne les appelez pas les nommez "test_something", ils ne seront pas exécutés comme tests unitaires. Vous pouvez ensuite les appeler à partir de vos méthodes de test unitaires réelles (le format que vous utilisez se résume à avoir une méthode dans la classe de toute façon).

Alors:

test "should be awesome" do 
    assert_general_awesomeness 
    assert true 
end 

private 

def assert_general_awesomeness 
    assert true 
end 

méthodes d'utilitaires qui vont être utilisés dans tous les sens peuvent aller dans test_helper et ils seront disponibles à tous vos tests. Vous pouvez également avoir un module que vous mélangez à vos tests pour fournir des méthodes utilitaires communes.

Si vous effectuez des appels communs à configurer avant un test unitaire, vous pouvez le mettre dans une méthode setup qui sera appelée avant chaque test dans la classe.