我有一个类似Sinatra的应用程序:
my_module.rb
module MyModule
def my_method
"yay"
end
end
app.rb
get "/my_module" do
puts my_method
end
我正尝试在my_method
和Minitest
的测试中存根mocha
。
def test_my_method
MyModule.stubs(:my_method).returns("stubbed")
get "/my_module"
end
但这似乎不起作用,因为仍然调用了原始方法。有关如何执行此操作的任何想法?谢谢!
答案 0 :(得分:1)
我发现了两种不同的实现方法。
有了这个宝石,我可以将Sinatra::Application
的任何实例都存根。因此,解决方案如下所示:
def test_my_method
Sinatra::Application.stub_any_instance(:my_method, "stubbed") do
get "/my_module"
# => stubbed
end
end
2)使用mocha
的{{3}}。
此解决方案遵循相同的原理。仅使用mocha
的方法。
def test_my_method
Sinatra::Application.any_instance.stubs(:my_method).returns("stubbed")
get "/my_module"
# => stubbed
end