2011-11-16 5 views
0

Je travaille sur un ancien Rails 2.3.8 qui n'a aucun test et j'essaye d'ajouter quelques tests en utilisant rspec avec machinist à l'application.Rails 2.3.8 machiniste méthode non définie make?

J'ai installé rspec 1.3.0 & 1.3.2 et j'ai exécuté le script du générateur.

J'ai suivi les instructions: https://github.com/notahat/machinist/tree/1.0-maintenance

Ajouter ce qui suit à /spec/blueprints.rb

require 'machinist/active_record' 
require 'sham' 

Et la ligne suivante à spec_helper.rb

require File.expand_path(File.dirname(__FILE__) + "/blueprints") 

Je J'ai créé un plan pour mon utilisateur et quand j'essaie d'utiliser 'User.make!' dans mon assistant de spécification (dans une méthode de connexion) Je reçois cette erreur:

NoMethodError in 'CategoriesController As a logged in user#index should render index' 
undefined method `make!' for #<Class:0x7f42b9deea10> 

Voici ma méthode de spec_helper:

def login_user 
    user = User.make! 
    @request.session[:user_id] = user.id 
    @current_user ||= User.find_by_id(user.id) 
end 

Il a été un moment que je l'ai touché une application 2.x Rails alors peut-être qu'il me manque quelque chose ici.

Répondre

0

Résolu:

Je ne devrais pas utiliser make! dans cette ancienne version de machiniste

J'ai fini par écrire un petit test pour machiniste pour voir si elle va charger mes plans et je choisis un modèle qui est moins compliqué, à savoir: une validation non 10.

describe "machinist" do 
    it "should create a category" do 
    category = Category.make 
    category.name.should == "General" 
    end 
end 

Cela a fonctionné, donc c'était surtout à cause de validations et de petites erreurs de syntaxe.

Questions connexes