2011-09-27 2 views
2

Ceci est mon code de spécification qui ne fonctionne pas:Pourquoi les objets machinistes ne sont-ils pas sauvegardés dans des blocs imbriqués?

require 'spec_helper' 

describe User do 
    describe "blah" do 
    it "should save itself" do 
     user = User.make! 
     u = User.find user.id 
     user = User.make! 
     u = User.find user.id 
    end 
    end 
end 

La spécification échoue au 2ème User.find même si cet objet utilisateur dispose d'un identifiant.

Si je supprime le bloc "describe" blah "do" alors le code semble fonctionner correctement. J'utilise machinist 2.0.0.beta2.

Si je désactive la mise en cache de machiniste dans mon test.rb fichier de configuration, il fonctionne aussi:

Machinist.configure do |config| 
    config.cache_objects = false 
end 

Quelqu'un sait ce que je fais mal ici? Est-ce une mauvaise pratique d'imbriquer plusieurs descriptions dans une spécification?

Merci

Répondre

1

Cela devrait également travailler:

u = User.make 
u.save 

Je rencontrez ce bug tout le temps à l'aide Machinist. Je ne pense pas que c'est exclusif à l'imbrication décrit, il semble aussi apparaître dans d'autres situations. Vraiment souhaiter qu'ils répareraient cela. Il provoque des erreurs apparemment aléatoires difficiles à localiser.

Questions connexes