これが私のコントローラーテストです:
test "should get create" do
sign_in(FactoryGirl.create(:user, admin: true))
assert_difference('Event.count') do
post :create, FactoryGirl.build(:event)
end
assert_not_nil assigns(:event)
assert_response :success
end
そして、events.rbに最も単純な検証を追加すると
class Event < ActiveRecord::Base
attr_accessible :city, :date, :name, :state, :street
has_many :periods
validates :name, presence: true
end
私は得る:
1) Failure:
test_should_get_create(EventsControllerTest) [/Users/noahc/Dropbox/mavens/test/functional/events_controller_test.rb:37]:
"Event.count" didn't change by 1.
<2> expected but was
<1>.
しかし、それから私はevents_factory.rbを見ます
factory :event do
name 'First Event'
street '123 street'
city 'Chicago'
state 'IL'
date Date.today
end
そして、名前が必要とされることに問題はないようです。
アップデート:
テストを行うとき:
test "should get create" do
sign_in(FactoryGirl.create(:user, admin: true))
assert_not_nil assigns(:event)
assert_response :success
end
私は得る:
1) Failure:
test_should_get_create(EventsControllerTest) [/Users/noahc/Dropbox/mavens/test/functional/events_controller_test.rb:38]:
<nil> expected to not be nil.
その行を削除し、assert_response:successのままにすると、通過します。
アップデート2:
def create
@event = Event.new(params[:event])
@event.save
end