gpt4 book ai didi

ruby - rspec: 'should_receive' 具有多个参数预期

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

我有一个接收复杂参数(HTML 字符串)的函数。我想检查有关此字符串的多个条件,即:

receiver.should_receive(:post_data).with(json_content).with(id_matching(5))

多个 with 参数不起作用,还有其他选择吗?如果有可能以某种方式制作复合匹配器,我很乐意定义自定义匹配器。

显然,我可以多次运行相同的测试并测试不同的结果,但这是一个需要几秒钟才能运行的集成测试,所以我不想让它变得更慢。

谢谢

编辑:

在撰写本文时,公认的答案(使用带有自定义描述的自定义匹配器)似乎是最佳选择。然而它并不完美,理想情况下 with 将支持“这是预期类型的​​项目,但不是我们预期的类型”的概念,而不是纯二进制匹配。

最佳答案

也许您甚至不需要自定义匹配器, block 形式就足够了。

receiver.should_receive(:post_data) do |*args|
json_content = args.first
json_content.should_not be_empty
json_content.should include "some string"
end

请参阅 RSpec Mocks 文档,第 Arbitrary Handling 部分

关于ruby - rspec: 'should_receive' 具有多个参数预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17591080/

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