gpt4 book ai didi

ruby - 接收 block 作为参数的模拟方法

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

我有一个或多或少这样的场景

class A
def initialize(&block)
b = B.new(&block)
end
end

我正在对 A 类进行单元测试,我想知道 B#new 是否正在接收传递给 A#new 的 block 。我使用 Mocha 作为模拟框架。

这可能吗?

最佳答案

我用 Mocha 和 RSpec 都试过了,虽然我可以通过测试,但行为不正确。从我的实验中,我得出结论,验证 block 是否已通过是不可能的。

问题:为什么要传递一个 block 作为参数? block 将用于什么目的?什么时候调用?

也许这确实是您应该用类似的东西测试的行为:

class BlockParamTest < Test::Unit::TestCase

def test_block_passed_during_initialization_works_like_a_champ
l = lambda {|name| puts "Hello #{name}"}
l.expects(:call).with("Bryan")
A.new(&l)
end

end

关于ruby - 接收 block 作为参数的模拟方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3252046/

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