RSpec 期望

rspec-expectations 用于定义预期结果。

RSpec.describe Account do
  it "has a balance of zero when first created" do
    expect(Account.new.balance).to eq(Money.new(0))
  end
end

基本结构

rspec 期望的基本结构是

expect(actual).to matcher(expected)
expect(actual).not_to matcher(expected)

注意:您也可以使用 expect(..).to_not 代替 expect(..).not_to。两者是彼此的别名,因此您可以根据需要使用任何一个。

示例

expect(5).to eq(5)
expect(5).not_to eq(4)

什么是匹配器?

匹配器是任何响应以下方法的对象

matches?(actual)
failure_message

这些方法也是匹配器协议的一部分,但可选

does_not_match?(actual)
failure_message_when_negated
description
supports_block_expectations?

RSpec 附带了许多内置匹配器和一个用于编写自定义匹配器的 DSL。

问题

rspec-expectations 的文档尚未完善。我们将随着时间的推移添加 Cucumber 特性并澄清现有特性。如果您想添加特定特性,发现现有文档不完整或令人困惑,或者更重要的是,您希望自己编写缺少的 Cucumber 特性,请 提交问题拉取请求