2010-08-09 5 views
7

Devrais-je écrire des tests unitaires pour mes associations?Rails unités tests associations

Je n'ai pas trouvé beaucoup de bonnes ressources sur comment et si faire les tests. Je vois aussi/j'entends un peu d'opinion qu'il est acceptable de ne pas tester vos associations (belongs_to et has_many) car elles sont déjà testées dans des rails. Et il ya une autre vue qui dit, si le code que vous écrivez, c'est le code que vous testez.

Donc si vous dites que je devrais, s'il vous plaît dites-moi quelques bonnes façons de le faire. Actuellement, j'écris des tests en utilisant Test :: Unit et je n'utilise pas Shoulda (je n'ai pas de macros). Donc, pour tester chaque association, je crée un tas d'objets, puis je fais des affirmations sur eux. Un peu comme cela -

Pour un post modèle qui has_many commentaires, ma logique de test va dans ce sens -

p = Post.create(:title => 'dummy_title', :content => 'lorem ...')
3.times{ Comment.create(:post_id :=> p.id, :commentor => 'jack')}
assert_equal(3, p.comments.size, "post doesn't have correct no of comments")

+0

En général, je fais juste 1 ou 2 tests pour vérifier qu'il y a vraiment une association là-bas. Je crois que si l'association existe, cela fonctionne. (Bien sûr, vous devez tester des options spécifiques sur l'association si vous en avez) – alternative

Répondre

12

Pour moi, tester les frontières de l'association sur le test de la langue (ou dans ce cas, tester le cadre).

Je le réserverais pour des circonstances où vous faites quelque chose de non standard avec l'association. Par exemple, si à chaque fois que vous créez un commentaire, il modifie quelque chose dans le message parent, vérifiez-le.