Ruby on rails 当factory使用';时,无法将FactoryGirl.create(:user)的输出分配给:user变量;序列';
我正在关注MichaelHartl关于RubyonRails(Rails3.2版)的伟大著作。我在第9.3.3节遇到了一些问题。分页 在我在Ruby on rails 当factory使用';时,无法将FactoryGirl.create(:user)的输出分配给:user变量;序列';,ruby-on-rails,ruby,capybara,factory-bot,Ruby On Rails,Ruby,Capybara,Factory Bot,我正在关注MichaelHartl关于RubyonRails(Rails3.2版)的伟大著作。我在第9.3.3节遇到了一些问题。分页 在我在spec/factories.rb使用sequence这样修改了我的工厂之后(注意,我已经注释掉了以前的版本): FactoryGirl.define do #工厂:用户做什么 #名字“迈克尔·哈特尔” #电子邮件“michael@example.com" #密码“foobar” #密码\u确认“foobar” #结束 工厂:用户做什么 序列(:user){
spec/factories.rb使用sequence
这样修改了我的工厂之后(注意,我已经注释掉了以前的版本):
FactoryGirl.define do
#工厂:用户做什么
#名字“迈克尔·哈特尔”
#电子邮件“michael@example.com"
#密码“foobar”
#密码\u确认“foobar”
#结束
工厂:用户做什么
序列(:user){n}“Person}{n}”
顺序(:email){| n |“person{n}@example.com”}
密码“foobar”
密码\u确认“foobar”
结束
结束
我无法在测试中再使用此选项:
let(:user){FactoryGirl.create(:user)}
例如,使用代码进行测试:
require'spec\u helper'
描述“用户页面”是什么
主题{page}
描述“索引”是什么
let(:user){FactoryGirl.create(:user)}
在(:all){30.times{FactoryGirl.create(:user)}
在(:all){User.delete_all}之后
在…之前做
有效登录用户
访问用户路径
结束
它{应该有_选择器('title',text:'All users')}
它{应该有_选择器('h1',文本:'All users')}
.
.
.
结束
返回错误,例如:
Failure/Error:before(:all){30.times{FactoryGirl.create(:user)}
命名错误:
未定义的方法“user=”用于#
#./spec/requests/user\u pages\u spec.rb:16:in'block(4级)in'
#./spec/requests/user\u pages\u spec.rb:16:in'times'
#./spec/requests/user\u pages\u spec.rb:16:in'block(3级)in'
我不能再使用这种语法(let(:user){…}
)了,因为我现在正在创建元素序列,但似乎找不到解决方法
有什么想法吗?谢谢 我想你指的是sequence(:name)
而不是你工厂的sequence(:user)
。它在你的user
模型中寻找一个user=
方法,而不是name=
方法。我认为应该是sequence(:name)
,而不是sequence(:user)
。该死!太明显了,谢谢!