【发布时间】:2015-04-30 19:24:57
【问题描述】:
我正在使用 RSPEC 和工厂在 ruby on rails 中测试我的控制器(使用 工厂女工) 控制器代码:
class JobsController < ApplicationController
before_action :authenticate_member!
before_action :set_job
def complete
@job.status = "completed"
@job.save!
Event.where("job_id = ? AND starts_at > ?", @job.id, DateTime.now).destroy_all
redirect_to scheduler_path
puts @job.inspect
end
def set_job
@job = Job.find(params[:id] || params[:job_id])
end
end
RSPEC 代码:
describe JobsController do
login_user
before do
@job=FactoryGirl.create(:job)
end
describe "Complete Action" do
it "sets job status to complete" do
puts @job.inspect
get :complete, :id=>@job.id
@job.status.should eq("Completed")
end
end
错误:
expected: "Completed" got: "pending" (compared using ==)
注意控制器代码的输出是:
#<Job id: 12, name: nil, status: "completed">
所以我知道它在控制器中发生了变化,但是为什么它在 factory girl 中回到“待定”?注 2:待定是默认值。 我是不是误解了控制器和工厂女孩的关系?
请帮忙?!
【问题讨论】:
标签: ruby-on-rails testing rspec controller factory-bot