メインコンテンツまでスキップ

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 に評価されることを期待しました |