我正在寻找将以下内容转换为工厂的方法:
ListView
申请工厂:
else
应用程序属性client = Client.new(application.uid, application.secret,
site:'http://localhost:3000', raise_errors:false)
和FactoryGirl.define do
factory :application do
name 'Test application'
redirect_uri 'http://another-site.com/redirect'
end
end
未在工厂中定义,而是在创建时定义。
以下内容不起作用(uid
):
secret
答案 0 :(得分:1)
我想我错过了解你的问题,但这段代码运行正常。可能是因为我已根据最大辩护人的评论向工厂提供application
:
<强> client.rb 强>
require 'factory_girl'
class Application
attr_accessor :uid
attr_accessor :secret
end
class Client
attr_accessor :uid
attr_accessor :secret
attr_accessor :extended
def initialize (uid, secret, extended)
@uid = uid
@secret = secret
@extended = extended
end
end
application = Application.new
application.uid = 123
application.secret = "secret"
FactoryGirl.define do
factory :application do
name 'Test application'
redirect_uri 'http://another-site.com/redirect'
end
end
FactoryGirl.define do
factory :client do
site 'http://localhost:3000'
raise_errors false
initialize_with{new(application.uid, application.secret, attributes)}
end
end
代码在ruby client.rb