我试图用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
我做错了什么?
答案 0 :(得分:2)
您可以存根is_a?
来电。
file = instance_double(File)
allow(file).to receive(:is_a?).with(File).and_return(true)