#<RSpec::ExampleGroups 的未定义局部变量或方法“clientid”
undefined local variable or method `clientid' for #<RSpec::ExampleGroups
我是 factory_girl gem 的新手。我的 Ruby gem 有静态客户端 ID、会话和主机。
我的工厂代码是这样的
FactoryGirl.define do
factory :session do |f|
f.clientid "clientid string"
f.secret " secret string"
f.host "host string"
end
end
我的规格代码是这样的
describe '#new' do
it 'works' do
result = FactoryGirl.build(clientid, secret, host)
expect(result).not_to be_nil
end
end
我的 spec_helper 文件是
require 'rspec'
require 'factory_girl'
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
require 'mydemogem'
我正在尝试为此创建一个工厂。但它给了我以下错误:
undefined local variable or method `clientid' for #<RSpec::ExampleGroups::
您的规格有
result = FactoryGirl.build(clientid, secret, host)
但您没有定义 clientid
、secret
和 host
。您无法访问未定义的变量
这里有一些解释:
您已定义
factory :session
文件,包含通常称为 sessions_factory.rb 的工厂,因此它被用于生成 session。您可以构建一个:
FactoryGirl.build(:session)
这将调用:
Session.new(clientid: 'clientid string', secret: 'secret string', host: 'host string')
您还可以像这样修改一些属性:
FactoryGirl.build(:session, clientid: 'other id string')
现在,返回的对象将等于:
Session.new(clientid: 'other id string', secret: 'secret string', host: 'host string')
这就是您使用对象工厂的方式。
我是 factory_girl gem 的新手。我的 Ruby gem 有静态客户端 ID、会话和主机。
我的工厂代码是这样的
FactoryGirl.define do
factory :session do |f|
f.clientid "clientid string"
f.secret " secret string"
f.host "host string"
end
end
我的规格代码是这样的
describe '#new' do
it 'works' do
result = FactoryGirl.build(clientid, secret, host)
expect(result).not_to be_nil
end
end
我的 spec_helper 文件是
require 'rspec'
require 'factory_girl'
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
require 'mydemogem'
我正在尝试为此创建一个工厂。但它给了我以下错误:
undefined local variable or method `clientid' for #<RSpec::ExampleGroups::
您的规格有
result = FactoryGirl.build(clientid, secret, host)
但您没有定义 clientid
、secret
和 host
。您无法访问未定义的变量
这里有一些解释:
您已定义
factory :session
文件,包含通常称为 sessions_factory.rb 的工厂,因此它被用于生成 session。您可以构建一个:
FactoryGirl.build(:session)
这将调用:
Session.new(clientid: 'clientid string', secret: 'secret string', host: 'host string')
您还可以像这样修改一些属性:
FactoryGirl.build(:session, clientid: 'other id string')
现在,返回的对象将等于:
Session.new(clientid: 'other id string', secret: 'secret string', host: 'host string')
这就是您使用对象工厂的方式。