Relation active entre ActiveRecord dans les tests RSpec

J'ai rencontré ce problème avec les tests. Imaginons que j'ai deux modèles, l'Utilisateur et le Poste de l'utilisateur has_many :les postes.

Je suis en train de spec un bloc de code qui comprend quelque chose comme ceci:

user = User.find(123)
post = user.posts.find(456)

Je sais comment se moquer de la User.find et user.posts pièces. Le user.posts maquette retourne un tableau de Post-objets. Et quand elle est à .find(456) partie, tout se casse avec no block given exception.

Donc ma question est: que dois-je retourner le résultat de la user.posts fantaisie, de sorte que .find(456) méthode fonctionne? User.first.posts.class dit que c'est du Tableau, mais à l'évidence il y a quelque chose de plus qui fait que l'AR-style trouver des appels. Je ne suis pas ravi par la perspective de se moquer de find méthode sur l'objet retourné.

PS Avant de suggérer l'évidence et la bonne réponse d'arrêter les moqueries au sujet et à l'aide de luminaires/ensemencement de la base de données de test avec des données nécessaires, le hic, c'est: l'héritage régime. L'Utilisateur et le Poste de travail sur le dessus de vues de base de données pas de tables, et de sa transformation, de sorte qu'ils sont des tables dans la base de données de test semble mauvais pour moi.

source d'informationauteur Toms Mikoss