在机架应用程序中模拟Ruby的超时::超时

时间:2015-08-17 13:54:25

标签: ruby rspec sinatra rack

我有一个Sinatra应用程序。我正在使用Rack::Test对其进行测试。我想确保将查询字符串参数传递给Timeout::timeout()

我认为expect_any_instance_of(Timeout).to receive(:timeout)会起作用。

没有,我只是得到默认的Exactly one instance should have received the following message(s) but didn't: timeout。我可以用眼睛看到代码肯定会毫无疑问地被调用。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

Timeout::timeout - 这是类方法调用,而不是实例方法调用。因此,你应该使用这个:

expect(Timeout).to receive(:timeout)