使用RSpec将类实例加倍的正确方法?

时间:2016-08-26 18:49:56

标签: ruby rspec

我试图用RSpec为类实例做一个测试加倍。假设我有一个只接受File对象作为参数的测试。

很好,现在我如何制作一个双倍,所以我不必传递一个包含我所有规格的实际文件?

let(:file) { double(File) }
raise "NOT A FILE" unless file.is_a? File
# => RuntimeError: NOT A FILE

我也试过这个:

let(:file) { instance_double(File) }
raise "NOT A FILE" unless file.is_a? File
# => RuntimeError: NOT A FILE

这个(期待一个实际的文件):

let(:file) { object_double(File.new) }
# => ArgumentError: wrong number of arguments

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您可以存根is_a?来电。

file = instance_double(File)
allow(file).to receive(:is_a?).with(File).and_return(true)
相关问题