Rails 2.3.8机械师未定义的方法制作?

时间:2011-11-16 03:59:11

标签: ruby-on-rails rspec machinist

我正在研究一个没有任何测试的旧Rails 2.3.8,我正在尝试使用带有机械师的rspec向应用程序添加一些测试。

我安装了rspec 1.3.0& 1.3.2并运行生成器脚本。

我按照说明操作: https://github.com/notahat/machinist/tree/1.0-maintenance

将以下内容添加到/spec/blueprints.rb

require 'machinist/active_record'
require 'sham'

以下一行指向spec_helper.rb

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

我为用户创建了蓝图,当我尝试使用'User.make!'时在我的规范助手中(在登录方法中)我收到此错误:

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

这是我的spec_helper方法:

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

自从我触及Rails 2.x应用程序已经有一段时间了,所以也许我在这里遗漏了一些东西。

1 个答案:

答案 0 :(得分:0)

解决:

我不应该使用make!在旧版机械师

我最后为机械师写了一个小测试,看它是否会加载我的蓝图,我选择了一个不太复杂的模型,即:一个验证不是10。

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

这很有用,所以主要是验证和小语法错误。