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 特性,请 提交问题 或 拉取请求。