RSpec 匹配器:从内置到自定义的深入探索
1. RSpec 匹配器基础
在测试代码时,RSpec 提供了丰富的匹配器来帮助我们验证代码的行为。不过,在使用匹配器时,有一些规则和注意事项。
1.1 负期望匹配
RSpec 不允许在负期望形式 expect { ... }.not_to change { ... } 中使用三个相对的 by... 方法或 to 方法。因为当期望一个值不改变时,说明它没有改变的幅度或没有改变到的值是没有意义的。不过,负期望可以与 from 一起使用,示例如下:
x = 5
expect { }.not_to change { x }.from(5)
在这个例子中,我们希望在代码块执行前后, x 的值都保持为 5。
1.2 输出匹配
许多 Ruby 工具会将输出写入 stdout 或 stderr ,RSpec 为此提供了特定的匹配器,示例如下:
expect { print 'OK' }.to output('OK').to_stdout
expect { warn 'problem' }.to output(/prob/).to_stderr
这个匹配器的工作原理是在
超级会员免费看
订阅专栏 解锁全文
5

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



