深入理解与创建自定义匹配器
1. 否定匹配器
在测试中,我们常常需要表达某个条件不成立的情况。RSpec 提供了 not_to 和 to_not 方法来实现这一需求,例如:
expect(correct_grammar).to_not split_infinitives
如果这种否定判断频繁出现,我们可以定义一个否定匹配器,使用起来更加简洁:
expect(correct_grammar).to avoid_splitting_infinitives
创建自定义否定匹配器很简单,只需调用 define_negated_matcher 方法:
RSpec::Matchers.define_negated_matcher :avoid_splitting_infinitives, :split_infinitives
这里,第一个参数是新匹配器的名称,第二个参数是原匹配器的名称。 avoid_splitting_infinitives 匹配器将作为 split_infinitives 的否定形式。
在更复杂的场景中,否定匹配器尤为有用。例如,以下期望语句存在歧义:
超级会员免费看
订阅专栏 解锁全文
8470

被折叠的 条评论
为什么被折叠?



