RSpec: scaffold index undefined method create

11 views
Skip to first unread message

Soichi Ishida

unread,
Nov 11, 2012, 6:11:40 AM11/11/12
to rubyonra...@googlegroups.com
Rails 3.1.3
rspec-rails (2.11.4)
rspec 2.11.1


I have generated a scaffold named Plan. And I have not done RSpec tests
for controllers at all.


schema.rb

create_table "plans", :force => true do |t|
t.integer "give_take"
t.integer "weight"
t.boolean "check_in"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "flight_name_id"
end

plans_controller.rb

def index
@plans = Plan.all

respond_to do |format|
format.html # index.html.erb
format.json { render json: @plans }
end
end

spec/factories/plans.rb

FactoryGirl.define do
factory :plan do
give_take 1
weight 1
check_in false
flight_name_id 11
end
end


plans_controller_spec.rb

describe "GET index" do
it "populates an array of plans" do
plan = create(:plan) #######HERE!!!!!
get :index
assigns(:plans).should eq [plan]
end

it "renders the :index view" do
get :index
response.should render_template :index
end
end


It raises a failure for index

2) PlansController GET index populates an array of plans
Failure/Error: plan = create(:plan)
NoMethodError:
undefined method `create' for
#<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x000001037a8e70>
# ./spec/controllers/plans_controller_spec.rb:45:in `block (3
levels) in <top (required)>'


Certainly I haven't defined method "create" anywhere except the one
generated by scaffold, which is not shown here.

How can I CREATE an instance here?

soichi

--
Posted via http://www.ruby-forum.com/.
Reply all
Reply to author
Forward
0 new messages