Ruby on rails 让用户跟随/学习课程-我的方法错误
当我有一个用户尝试参加/遵循课程时,我收到一个rspec错误。我相信我的方法一定有问题,因为它在rspec测试中返回nil。课程模型和用户模型之间还有一个作业模型。怎么了 错误Ruby on rails 让用户跟随/学习课程-我的方法错误,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,当我有一个用户尝试参加/遵循课程时,我收到一个rspec错误。我相信我的方法一定有问题,因为它在rspec测试中返回nil。课程模型和用户模型之间还有一个作业模型。怎么了 错误 1) User taking course Failure/Error: it { should be_taking_course(course)} expected taking_course?(#<Course id: 1, title: "Ze Finance Course 1", descrip
1) User taking course
Failure/Error: it { should be_taking_course(course)}
expected taking_course?(#<Course id: 1, title: "Ze Finance Course 1", description: "Description for course 1", typeof: nil, created_at: "2013-06-25 21:38:24", updated_at: "2013-06-25 21:38:24">) to return true, got nil
# ./spec/models/user_spec.rb:125:in `block (3 levels) in <top (required)>'
it{should…}
是速记it{subject.should…}
但是您没有设置@用户
而不是主题
。因此RSpec将创建一个隐式的主题
,它只是User.new
您可以通过设置显式的主题来修复测试,方法与设置@user
的方法大致相同:
describe "taking course" do
let(:course) {FactoryGirl.create(:course)}
subject { User.create(@attr) }
before do
subject.take_course!(course)
end
it { should be_taking_course(course) }
end
如果您不想这样做,请使您的断言更加明确:
it { @user.should be_taking_course(course) }
describe "taking course" do
let(:course) {FactoryGirl.create(:course)}
subject { User.create(@attr) }
before do
subject.take_course!(course)
end
it { should be_taking_course(course) }
end
it { @user.should be_taking_course(course) }