0

I'm working on an old Rails 2.3.8 which doesn't have any testing and I'm trying to add some tests using rspec with machinist to the app.

I've installed rspec 1.3.0 & 1.3.2 and ran the generator script.

I followed the instructions on: https://github.com/notahat/machinist/tree/1.0-maintenance

Adding the following to /spec/blueprints.rb

require 'machinist/active_record'
require 'sham'

And the following line to spec_helper.rb

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

I've created a blueprint for my User and when I try to use 'User.make!' in my spec helper (within a login method) I get this error:

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

Here is my spec_helper method:

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

It's been a while since I've touched a Rails 2.x app so maybe I'm missing something here.

map7
  • 5,096
  • 6
  • 65
  • 128

1 Answers1

0

Solved:

I shouldn't be using make! in this old version of machinist

I ended up writing a little test for machinist to see if it will load my blueprints and I selected a model which is less complicated, ie: one validation not 10.

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

This worked, so it was mostly to do with validations and small syntax mistakes.

map7
  • 5,096
  • 6
  • 65
  • 128