所以这是我的工厂:
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不工作!
答案 0 :(得分:1)
通过安装databsecleaner解决了这个问题!会员数据现在显示在控制器和视图中!! -