我正在创建一个 gem,它在它正在使用的任何应用程序中都有一个常量(在运行生成器之后),但该常量在 gem 本身中不存在。我在 gem 中遇到 RSpec 问题,没有跳过调用常量的代码部分。下面是一个简单的例子。
class Foo
def self.do_something
Bar.send(FakeConstant.name) #Bar.send is a valid class and method
end
end
foo_spec.rb
it 'does something'
expect(Bar).to receive(send).and_return('skipped!')
Foo.do_something
end
rspec 输出
NameError: uninitialized constant FakeConstant
我想编写测试,以便它完全跳过Bar.send
调用,这样它就永远不知道它里面有一个坏常量。真的没有很好的方法来解决这个问题。