我正在构建一个宝石,它可以提供更方便,更可配置的控制台'对于ruby gem开发而言比当前选项(即:' bundle console')。
因此,如果不是整个gem最重要的一个方面就是它确实打开了一个控制台会话,我目前在start方法中设置了它:
class MyConsole
def start
Pry.start(self)
end
end
我正在尝试测试此功能,但这很难,因为他们的资源不是很多。它也非常烦人,因为每次我在rspec中运行这个方法时,pry都会打开,我必须在完成剩下的测试之前退出它。
我有三个主要问题:
答案 0 :(得分:2)
最好的方法是使用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
这是对RSOP存根选项IMO的一个非常好的解释,您可以在其中了解更多信息:https://about.futurelearn.com/blog/stubs-mocks-spies-rspec