be
マッチャー
関連するいくつかの "be" マッチャーがあります。
expect(obj).to be_truthy # passes if obj is truthy (not nil or false)
expect(obj).to be_falsey # passes if obj is falsy (nil or false)
expect(obj).to be_nil # passes if obj is nil
expect(obj).to be # passes if obj is truthy (not nil or false)
be_truthy
マッチャー
次の内容で "be_truthy_spec.rb" という名前のファイルがあるとします:
RSpec.describe "be_truthy matcher" do
specify { expect(true).to be_truthy }
specify { expect(7).to be_truthy }
specify { expect("foo").to be_truthy }
specify { expect(nil).not_to be_truthy }
specify { expect(false).not_to be_truthy }
# deliberate failures
specify { expect(true).not_to be_truthy }
specify { expect(7).not_to be_truthy }
specify { expect("foo").not_to be_truthy }
specify { expect(nil).to be_truthy }
specify { expect(false).to be_truthy }
end
rspec be_truthy_spec.rb
を実行すると、
出力には "10 examples, 5 failures" が含まれていること、
かつ出力には以下が含まれていること:
期待値: falsey の値
実際の値: true
かつ出力には以下が含まれていること:
期待値: falsey の値
実際の値: 7
かつ出力には以下が含まれていること:
期待値: falsey の値
実際の値: "foo"
かつ出力には以下が含まれていること:
期待値: truthy の値
実際の値: nil
かつ出力には以下が含まれていること:
期待値: truthy の値
実際の値: false
be_falsey
マッチャー
次の内容で "be_falsey_spec.rb" という名前のファイルがあるとします:
RSpec.describe "be_falsey matcher" do
specify { expect(nil).to be_falsey }
specify { expect(false).to be_falsey }
specify { expect(true).not_to be_falsey }
specify { expect(7).not_to be_falsey }
specify { expect("foo").not_to be_falsey }
# deliberate failures
specify { expect(nil).not_to be_falsey }
specify { expect(false).not_to be_falsey }
specify { expect(true).to be_falsey }
specify { expect(7).to be_falsey }
specify { expect("foo").to be_falsey }
end
rspec be_falsey_spec.rb
を実行すると、
出力には "10 examples, 5 failures" が含まれていること、
かつ出力には以下が含まれていること:
期待値: truthy の値
実際の値: nil
かつ出力には以下が含まれていること:
期待値: truthy の値
実際の値: false
かつ出力には以下が含まれていること:
期待値: falsey の値
実際の値: true
かつ出力には以下が含まれていること:
期待値: falsey の値
実際の値: 7
かつ出力には以下が含まれていること:
期待値: falsey の値
実際の値: "foo"
be_nil
マッチャー
次の内容で "be_nil_spec.rb" という名前のファイルがあるとします:
RSpec.describe "be_nil matcher" do
specify { expect(nil).to be_nil }
specify { expect(false).not_to be_nil }
specify { expect(true).not_to be_nil }
specify { expect(7).not_to be_nil }
specify { expect("foo").not_to be_nil }
# deliberate failures
specify { expect(nil).not_to be_nil }
specify { expect(false).to be_nil }
specify { expect(true).to be_nil }
specify { expect(7).to be_nil }
specify { expect("foo").to be_nil }
end
rspec be_nil_spec.rb
を実行すると、
出力には "10 examples, 5 failures" が含まれていること、
かつ出力には以下が含まれていること:
期待値: nil でない値
実際の値: nil
かつ出力には以下が含まれていること:
期待値: nil
実際の値: false
かつ出力には以下が含まれていること:
期待値: nil
実際の値: true
かつ出力には以下が含まれていること:
期待値: nil
実際の値: 7
かつ出力には以下が含まれていること:
期待値: nil 取得値: "foo"
## `be` マッチャー
_Given_ "be_spec.rb" という名前のファイルがあるとき:
```ruby
RSpec.describe "be_matcher" do
specify { expect(true).to be }
specify { expect(7).to be }
specify { expect("foo").to be }
specify { expect(nil).not_to be }
specify { expect(false).not_to be }
# deliberate failures
specify { expect(true).not_to be }
specify { expect(7).not_to be }
specify { expect("foo").not_to be }
specify { expect(nil).to be }
specify { expect(false).to be }
end
When rspec be_spec.rb
を実行すると:
Then 出力には以下のすべてが含まれているべきです:
| 10 つの例、5 つの失敗 | | true が false に評価されることを期待しました | | 7 が false に評価されることを期待しました | | "foo" が false に評価されることを期待しました | | nil が true に評価されることを期待しました | | false が true に評価されることを期待しました |