我正在构建一个gem,它为ruby gem开发提供了一个比当前选项更方便、更具可配置性的‘控制台’(即'bundle console')。
因此,如果不是整个gem最重要的一个方面,那就是它实际上打开了一个控制台会话,我目前已经在start方法中设置了这个会话:
class MyConsole
def start
Pry.start(self)
end
end
我正在尝试测试这个功能,但这很困难,因为他们没有很多好的资源来做这件事。这也真的很烦人,因为每次我在rspec中运行这个方法时,pry都会打开,我必须在完成其余的测试之前退出它。
我有三个主要问题:
发布于 2018-06-07 09:52:41
最好的方法可能是使用RSpec spy。
您的测试可能如下所示:
describe MyConsole do
describe '#start' do
it 'calls Pry.start' do
described_class.start
expect(Pry).to have_received(:start).with('your_args_here')
end
end
end
这是对RSpec存根选项的一个很好的解释,你可以在这里学到更多:https://about.futurelearn.com/blog/stubs-mocks-spies-rspec
https://stackoverflow.com/questions/50731284
复制相似问题