所以这是我的工厂:
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时,它会为视图中的nil:NilClass返回未定义的方法"email"。
当我将绑定撬放在视图中并运行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添加到我的布局文件中,它显示[],工厂女孩不工作!
通过安装数据库清理器解决了问题!成员数据现在显示在控制器和视图中!!–