我有一个实例方法,可以在创建类的新实例后调用。
如何在Rspec中测试它?我使用以下内容并收到错误:
let(:schedule) { ScheduleKaya.new('test-client-id') }
let(:schedule) { schedule.create_recurring_event('test-keyword', 'slack') }
换句话说,我想创建实例。然后我想应用方法create_recurring_event
。
我的测试想检查它是否已将变量分配给实例。
it "has @keyword = test-keyword" do
expect(schedule.keyword).to eq('test-keyword')
end
因为它进行了数据库调用,所以我想检查来自调用的响应,看看我的状态是否为200.
但我似乎无法创建实例然后应用该方法。
问题:
测试实例方法的正确方法是什么,在创建新实例后应用该方法。
答案 0 :(得分:1)
let
块的作用类似于方法,并返回最后一个语句的返回值。因此,只需将两者写入同一个块并确保返回正确的值:
let(:schedule) do
schedule_kaya = ScheduleKaya.new('test-client-id')
schedule_kaya.create_recurring_event('test-keyword', 'slack')
schedule_kaya
end
或者您可以使用tap
:
let(:schedule) do
ScheduleKaya.new('test-client-id').tap do |schedule_kaya|
schedule_kaya.create_recurring_event('test-keyword', 'slack')
end
end
答案 1 :(得分:0)
如果您使用的是Rails FactoryGirl,我建议将factory_girl_rails与Rspec一起使用,如下所示:
it "has @keyword = test-keyword" do
schedule = Factory(:shcedule, keyword: "has @keyword = test-keyword")
expect(schedule.keyword).to eq('test-keyword')
end