2015-10-18 32 views
1

我的类定义为:ruby​​的factory_girl正在返回参数错误 - 为什么?

class ScheduleKaya < OrchestrateIo 
    def initialize(bot_client_id) 
    @bot_client_id = bot_client_id 
    @collection = :schedules 
    @client = Orchestrate::Client.new(ENV['ORCHESTRATE_API']) 
    end 
end 

厂如:

## spec/factories/schedules.rb 

FactoryGirl.define do 

    factory :base_schedule, class: ScheduleKaya do 

     bot_client_id "test-client-id" 

    end 

end 

Rspec的为:

context "when creating a new reminder for test-client-id on Feburary 1st 2015" do 

     let(:schedule) { FactoryGirl.build(:base_schedule)} 
     Timecop.freeze(Chronic.parse("february 14, 2014 at 10am")) 

     it "creates an instance of ScheduleKaya" do 

     expect(schedule).to be_a ScheduleKaya 

     end 

我也得到一个参数错误:

Failure/Error: let(:schedule) { FactoryGirl.build(:base_schedule)} 
    ArgumentError: 
     wrong number of arguments (0 for 1) 

问题:为什么参数是错误的,因为在类中,它只需要一个参数来初始化,并且我在工厂中提供了一个参数。

+0

参数错误可能发生在顶层'let'块的执行过程中的任何地方(例如在'Orchestrate :: Client.new'的中间) –

回答

0

尝试定义你的工厂是这样的:

## spec/factories/schedules.rb 
FactoryGirl.define do 
    factory :base_schedule, class: 'ScheduleKaya' do 
    bot_client_id "test-client-id" 
    end 
end 

class名内报价。看看是否解决了你的问题。

+0

好的,谢谢。 – Angela

相关问题