gpt4 book ai didi

ruby - 否定 RSpec 3 中的参数匹配器

转载 作者:太空宇宙 更新时间:2023-11-03 18:12:26 26 4
gpt4 key购买 nike

我有一个正在调用的函数,我需要测试它的参数。通常我会做类似的事情:

expect(my_obj).to_receive(:my_function).with(include('good_value'))

不过,有没有办法把它翻转过来,变成类似的东西

expect(my_obj).to_receive(:my_function).with(exclude('bad_value'))

在关于返回值的规范中,这可以简单地使用 to_not 完成,但是当匹配参数时,这种否定形式似乎不可用。除了编写自定义匹配器之外,我在文档中找不到任何建议执行此操作的方法,这在这里感觉有点矫枉过正。

有没有一种无需编写自定义匹配器即可执行此操作的简单方法?

最佳答案

RSpec 3.1+ 允许您使用 RSpec::Matchers.define_negated_matcher 定义任何匹配器的否定版本:

RSpec::Matchers.define_negated_matcher :exclude, :include

完成后,这应该可以工作:

expect(my_obj).to_receive(:my_function).with(exclude('bad_value'))

关于ruby - 否定 RSpec 3 中的参数匹配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31664131/

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