FactoryGirl制作不适用于功能测试

时间:2015-07-03 14:54:56

标签: ruby-on-rails ruby testing devise factory-bot

所以这是我的工厂:

    FactoryGirl.define do
     factory :member do       
       email 'admin@admin.com'
       password 'rootroot'    
       first_name 'Rinholds'  
       last_name 'Jordan'     
       expiration Time.local(2015, 6, 21, 15, 13, 0)
       start_date Time.local(2015, 4, 21, 15, 13, 0)
       role 2                 
     end
  end

这是我的规范:

   require 'rails_helper'

   describe DashboardController, type: :controller do

     it 'should display chart', js: true do
       member = create(:member)  
       member.save!           
       member.confirm         

       binding.pry            
       visit '/'              

     end
   end 

这是我的root_path():

     body
       = yield
     = Member.first.email
~            

当我运行spec时,它会返回未定义的方法`email'对于nil:NilClass在视图中。

当我在视图中放置绑定pry,并运行Member.all时,它返回空数组!

那怎么可能?如何强制factorygirl创建真正的数据库数据?!?

- 编辑 - 这是控制器,但它甚至没有到达那里,因为设计登录页面authorized_member!

   class DashboardController < ApplicationController
     before_filter :authenticate_member!

     def index
       day_statistics = Statistics::DayStatistics.new(current_member)
       @charts = day_statistics.domain_charts
     end
   end

然后我将Member.all添加到我的布局文件中,它显示[],FACTORY GIRL不工作!

1 个答案:

答案 0 :(得分:1)

通过安装databsecleaner解决了这个问题!会员数据现在显示在控制器和视图中!! -