- be_xxx — predicate matcher
オブジェクトの xxx? メソッドを呼び出して、その戻り値が truthy かを検証
# user.general_role? を呼び出す
expect(user).to be_general_role
user.valid? を呼び出す
expect(user).to be_valid
user.persisted? を呼び出す
expect(user).to be_persisted
be_ の後の部分に ? を付けたメソッドが自動的に呼ばれる仕組み
- be 単体 — truthy/falsy 判定
expect(value).to be # truthy であること(nil/false 以外)
expect(value).not_to be # falsy であること(nil または false)
- be_a / be_an — 型チェック
expect(user).to be_a(User) # user.is_a?(User) を検証
- be + 比較演算子
expect(count).to be > 0 expect(count).to be >= 1