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