以前回答した者ですが、テストの書き方として正しく無いことをしているような印象を受けます。
以前は何か特別な事情があるものかと思っていましたが、そうではなさそうですね。
そもそもテストは「条件によって特定のシナリオをスキップする」のではなく、
「条件によってシナリオを分ける」書き方をします。
例えば以下のような感じです。
rb
1describe Example do
2 context '年齢が19歳の場合' do
3 before { let(:age) { 19 } }
4 it '未成年であること' { expect(age).not_to be >= 20 }
5 end
6 context '年齢が20歳の場合' do
7 before { let(:age) { 20 } }
8 it '成人であること' { expect(age).to be >= 20 }
9 end
10end
特定の条件のテストをスキップするとなると
rb
1describe Example do
2 context '年齢が19歳の場合' do
3 before { let(:age) { 19 } }
4 it '未成年であること' { expect(age).not_to be >= 20 }
5 end
6 # context '年齢が20歳の場合' do
7 # before { let(:age) { 20 } }
8 # it '成人であること' { expect(age).to be >= 20 }
9 # end
10end
こんな感じになるのが真っ当かと思います。
今回の
特定のシナリオで background do をスキップ
と同等のことを真っ当に行うなら
rb
1describe Example do
2 context '年齢が19歳の場合' do
3 before { let(:age) { 19 } }
4 it '未成年であること' { expect(age).not_to be >= 20 }
5 end
6 context '年齢が20歳の場合' do
7 # before { let(:age) { 20 } }
8 it '成人であること' { expect(age).to be >= 20 }
9 end
10end
このようになります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。