Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何测试函数';s逻辑,但忽略方法调用?_Ruby - Fatal编程技术网

Ruby 如何测试函数';s逻辑,但忽略方法调用?

Ruby 如何测试函数';s逻辑,但忽略方法调用?,ruby,Ruby,我正在为现有代码编写一个Rspec测试,我已经添加了一些逻辑,以确保这些代码能够正常工作。我不关心返回的值,只关心逻辑对我传递给它的对象起作用。为了简单起见,这里是我构建的类中非常基本的函数的一个示例: def function\u我想测试(东西) 如果事件>0 功能(事物) 其他的 功能(事物) 结束 结束 function\u a和function\u b已经有了规范测试,所以我并不在乎返回值是什么,但是function\u a和function\u b都进行了API调用,我觉得这会使rs

我正在为现有代码编写一个Rspec测试,我已经添加了一些逻辑,以确保这些代码能够正常工作。我不关心返回的值,只关心逻辑对我传递给它的对象起作用。为了简单起见,这里是我构建的类中非常基本的函数的一个示例:

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”