Rspec:避免与消息期望不同步的问题

时间:2012-12-04 18:26:23

标签: ruby rspec mocking

消息期望允许您检查被测对象是否正在发送正确的消息,而不是目标对象是否可以实际响应此调用。另一方面,集成测试检查所有内容是否真正有效,即调用是否正确,理解和执行。

是否存在中间立场,例如检查被测对象是否发送了正确的消息接收对象可以响应这些消息?这将确保在接收对象更改时测试中断,而不运行完整集成测试。实质上:

target.should_receive(:my_method) && target.should respond_to(:my_method)

使用像

这样的自定义匹配器
target.should_get_message(:my_method)

这对于我只想协调不同行为的胶水类非常有用。

您对此有何看法?这是一种可行的方法吗?

1 个答案:

答案 0 :(得分:3)

Checkout rspec-fire它解决了这个问题。我一直在很多项目中使用它。