Ruby 如何测试函数';s逻辑,但忽略方法调用?
我正在为现有代码编写一个Rspec测试,我已经添加了一些逻辑,以确保这些代码能够正常工作。我不关心返回的值,只关心逻辑对我传递给它的对象起作用。为了简单起见,这里是我构建的类中非常基本的函数的一个示例:Ruby 如何测试函数';s逻辑,但忽略方法调用?,ruby,Ruby,我正在为现有代码编写一个Rspec测试,我已经添加了一些逻辑,以确保这些代码能够正常工作。我不关心返回的值,只关心逻辑对我传递给它的对象起作用。为了简单起见,这里是我构建的类中非常基本的函数的一个示例: def function\u我想测试(东西) 如果事件>0 功能(事物) 其他的 功能(事物) 结束 结束 function\u a和function\u b已经有了规范测试,所以我并不在乎返回值是什么,但是function\u a和function\u b都进行了API调用,我觉得这会使rs
def function\u我想测试(东西)
如果事件>0
功能(事物)
其他的
功能(事物)
结束
结束
function\u a
和function\u b
已经有了规范测试,所以我并不在乎返回值是什么,但是function\u a
和function\u b
都进行了API调用,我觉得这会使rspec测试更加复杂,因为只测试function\u I\u to\u test
中包含的逻辑
我已经浏览了这一页()回顾了单元测试方法,解释是有道理的,但是当尝试使用allow
和receive
时,似乎仍然需要调用函数,因此我假设我没有正确地使用函数
本质上,我希望这样对待我的代码,让它返回任意的东西,这样它甚至不调用函数
def function\u我想测试(东西)
如果事件>0
pp“a”
其他的
pp“b”
结束
结束
从我的研究来看,似乎允许/期望是一条路要走,但我假设我没有完全理解这个概念
我想我的主要问题是,我的rspec测试如何知道在测试功能时“覆盖”功能(功能a
和功能b
)
我知道有一些类似的问题,但它们似乎没有回答我的预期。类似于allow(obj)。要接收_消息(function_a:'a',function_b:'b')
应该用返回给定值的存根替换这些方法。关键字:“Mocks”类似于allow(obj)。要接收_消息(函数a:'a',函数b:'b')
应该可以用返回给定值的存根替换这些方法。关键字:“Mocks”