gpt4 book ai didi

ruby - 如何断言某些方法被 Ruby minitest 框架调用?

转载 作者:数据小太阳 更新时间:2023-10-29 06:27:41 25 4
gpt4 key购买 nike

我想用 minitest Ruby 测试一个函数是否正确调用其他函数,但我找不到合适的 assert 来从 doc 中测试.

源代码
class SomeClass
def invoke_function(name)
name == "right" ? right () : wrong ()
end

def right
#...
end

def wrong
#...
end
end
测试代码:
describe SomeClass do
it "should invoke right function" do
# assert right() is called
end

it "should invoke other function" do
# assert wrong() is called
end
end

最佳答案

Minitest 有一个特殊的 .expect :call 用于检查是否调用了某个方法。

describe SomeClass do
it "should invoke right function" do
mocked_method = MiniTest::Mock.new
mocked_method.expect :call, return_value, []
some_instance = SomeClass.new
some_instance.stub :right, mocked_method do
some_instance.invoke_function("right")
end
mocked_method.verify
end
end

不幸的是,这个特性没有很好的记录。我是从这里找到的:https://github.com/seattlerb/minitest/issues/216

关于ruby - 如何断言某些方法被 Ruby minitest 框架调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10869417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com