3
我想添加FactoryGirl支持我的控制器中的默認腳手架規格,我似乎無法找到正確的語法。RSpec + FactoryGirl和控制器規格
下面是一個例子測試:
describe "POST create" do
describe "with valid params" do
it "creates a new Course" do
expect {
post :create, {:course => valid_attributes}, valid_session
}.to change(Course, :count).by(1)
end
do
這一點我通過更換:
describe "POST create" do
describe "with valid params" do
it "creates a new Course" do
expect {
post :create, course: FactoryGirl.build(:course)
}.to change(Course, :count).by(1)
end
do
規格/工廠/ courses.rb
FactoryGirl.define do
factory :course do
association :provider
name "Course name"
description "course description"
end
end
應用程序/模型/ course.rb
class Course < ActiveRecord::Base
validates :name, :presence => true
validates :description, :presence => true
validates :provider_id, :presence => true
has_many :terms
belongs_to :provider
end
應用程序/控制器/ courses_controller.rb
# POST /courses
# POST /courses.json
def create
@course = Course.new(course_params)
respond_to do |format|
if @course.save
format.html { redirect_to @course, notice: 'Course was successfully created.' }
format.json { render action: 'show', status: :created, location: @course }
else
format.html { render action: 'new' }
format.json { render json: @course.errors, status: :unprocessable_entity }
end
end
end
它通常失敗 「的ActionController :: ParameterMissing:PARAM未發現:當然」 沒有任何人有什麼想法?
謝謝! 弗朗西斯
我以前試過這個,但是spec失敗了:「count應該已經被改變了1,但被改變了0」 –
你可以在'courses_controller'上發佈你的':course'工廠,'create'行爲和'Course '模特?您的測試現在失敗了,而不是出現錯誤。 – AbM
根據要求使用工廠數據更新我的原始帖子。 –