消息期望允许您检查被测对象是否正在发送正确的消息,但不能检查目标对象是否可以实际响应此调用。另一方面,集成测试检查一切是否实际工作,即调用是否正确进行、理解和执行。
是否有中间立场,例如检查被测对象是否发送正确的消息以及接收对象是否可以响应这些消息?这将确保在接收对象更改时测试中断,而无需运行完整的集成测试。在本质上:
target.should_receive(:my_method) && target.should respond_to(:my_method)
使用自定义匹配器,例如
target.should_get_message(:my_method)
这对于我认为只协调不同动作的粘合类可能很有用。
您对此有何看法?这是一种可行的方法吗?