rspec之前(:每个)使用factorygirl创建模型不工作

我正在使用rspec来测试我的模型方法。 一切都很顺利,但突然间工厂女孩的构建不起作用。 这是我的代码:

require File.dirname(__FILE__) + '/../spec_helper' describe User do describe 'creation' do before(:each) do @user = FactoryGirl.build(:user) end it 'is invalid without an email address' do user = @user user.email = nil user.should_not be_valid end it 'is invalid without a password' do user = @user user.password = nil user.should_not be_valid end it 'is invalid with an invalid email' do user = @user user.email = "email@invalid" user.should_not be_valid end it 'is valid with a valid email and password' do user = @user user.should be_valid end end describe "method" do before(:each) do @user = FactoryGirl.build(:user) end context "first_name" do it "should return the user's first name" do user = @user user.first_name.should == "User" end end context "count_of_invoices_by_year" do # @todo not sure how to check these since .count doesn't work it "should return the correct count of all invoices in the specified year" do # there are two invoices in 2013 # user = @user # user.count_of_invoices_by_year("2013", :total).should == 2 end it "should return the correct count of paid invoices in the specified year" do user = @user debugger end it "should return the correct count of sent invoices in the specified year" do end end context "sum_of_invoices_by_year" do it "should return the sum of the grand_totals of each of the invoices in the specified year" do # user.sum_of_invoices_by_year("2013", :total).should == end it "should return the sum of the grand_totals of each of the paid invoices in the specified year" do end it "should return the sum of the grand_totals of each of the sent invoices in the specified year" do end end end end 

所有其他@user设置正确并且工作但是当我到这里时:

它“应该在指定年份返回正确的付费发票数”do user = @user debugger end

factorygirl.build只是不起作用。 我尝试将所有人直接包含在特定测试中…但它不会设置为@user。 我错过了什么? 这是错误:

 NameError Exception: undefined local variable or method `user' for # 

当我试图查看用户时会发生这种情况,因为@user是零

事实certificate用户实际上并不存在于测试用例中,除非你真的尝试用它测试一些东西……这很奇怪。

  it "should return the user's first name" do user.first_name.should == "User" end 

这有用户在场但这个:

  it "should return the user's first name" do debugger end 

在调试器显示user = nil之后查看控制台。