RSpec允许按如下方式对潜在请求进行存根 -
expect(@project).to receive(:msg).at_least(n).times
我不知道(并且不关心)@project
收到:msg
的次数的情况如何?
RSpec中是否存在“无限制”存根,告诉它无论被调用多少次都要为该示例存根?
答案 0 :(得分:2)
如果你不在乎它有多少次存根,你可以使用allow
。
allow(@project).to receive(:msg)
答案 1 :(得分:1)
使用MATCH path = (london :Airport{city:'London'})-[:HAS_FLIGHT|FLYING_TO*0..6]->(tokyo :Airport{city:'Tokyo'})
RETURN path;
(由@Huy建议)或allow(@project).to receive(:msg)
将使该方法存根。
执行@project.stub(:msg)
只是让你断言存根被调用了多次。
如果你没有对它做出断言,或者使你的断言一般(例如expect(@project).to receive(:msg)
),那么如果方法被调用的话不重要。
您可以在RSpec文档中找到更多信息:
答案 2 :(得分:0)
我今天正在寻找答案。简短的回答是" no",RSpec没有这种无限制的存根。
来自docs:
在预期邮件时,您可以指定您希望收到邮件的次数。如果您没有指定预期的接收计数,则默认为一次。
如果您确定您的测试将至少调用该方法一次,那么您可以使用:
expect(@project).to receive(:msg).at_least(:once)
如果您不确定该方法是否会被调用,您可以将其反转并使用大量数字:
expect(@project).to receive(:msg).at_most(1000).times