2024年現在、Rubyのデファクトスタンダード的なテスティングフレームワーク。BDDと言ってはいるものの、BDD自体がややこしい言葉になっている今となってはあまりBDDとかは関係なく使っているユーザーが多いと思われる。

BDDについてはかなり昔に BDDについて自分なりにまとめてみた という記事を書いているのでそちらもどうぞ。

Tips

以下Tipsというかメモ。

let!とインスタンス変数を組み合わせるとき初期化タイミングに注意

let!(:var) { @var }

before do
  @var = 1
end

it { expect(var).to eq 1 } #=> 失敗する。varが返す値はnil

let!は内部的にはbeforeletの組み合せである。また、beforeは基本的に上から順に実行される。つまり、この場合@var = 1より前にlet!による@varへの参照が発生するが、値は設定されていないためnilが設定される。

参考情報