gpt4 book ai didi

rspec at_least once using with condition 没有像我预期的那样工作

转载 作者:行者123 更新时间:2023-12-04 21:01:14 25 4
gpt4 key购买 nike

如果使用不同的参数多次调用该方法,是否有一种方法可以测试该方法至少使用参数匹配器调用一次。这是一个例子:

class A
def test(a)
puts "AAA"
end
end

it "should work" do
a = A.new
expect(a).to receive(:test).with(1).at_least(:once)
a.test 2
a.test 1
a.test 3
end

我只是担心使用某个参数至少调用了一次测试,但是第一次使用不匹配的参数调用测试时我遇到了期望失败。

更新我想要做的事情的一个更好的例子比这复杂一点......我想对参数进行自定义匹配......更像是

it "should work" do
a = A.new
expect(a).to receive(:test).at_least(:once).with(an_instance_of(Fixnum)) do |i|
expect(i).to be > 2
end
a.test 2
a.test 1
a.test 3
end

当我过去使用 mocha 时,您可以将一个 block 传递给 with 方法来评估参数。如果该 block 返回 false,则参数期望失败。 rspec 似乎只允许您使用 return block 检查参数(当您使用 and_call_original 时会被忽略)。

最佳答案

我认为您需要使用 as_null_object 来基本上忽略带有其他参数的调用。

改变行:

a = A.new

收件人:

a = A.new.as_null_object

关于rspec at_least once using with condition 没有像我预期的那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21583438/

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