RSpec 3.5 から shared_context の使い方が少し変わっていた

RSpec 3.5 から shared_context のメタデータの使い方に変更があったのでメモ。 このようなテストがあったとします。 context 'given login' do let(:user) { create(:user) } before { signin_as user } ... end shared_context を使うと、このように書くことが出来ます。同じ context を複数で使いたい場合に便利です。 shared_context 'User signin' do let(:user) { create(:user) } before { signin_as user } end context 'given login' do include_context 'User signin' ... end RSpec 3.4 までは、メタデータを使ってこのように省略することが出来ました。 shared_context 'User signin', :signin do let(:user) { create(:user) } before { signin_as user } end context 'given login', :signin do ....

2017-11-10 (Fri) · masutaka

Rspecのshouldをexpectに置き換えた後の、itの使い道はこれ? #rspec

Ruby - RSpecのshouldはもう古い!新しい記法expectを使おう! - Qiita [キータ] こちらの記事は以前から何度も読み返しております。o 以前から、これには英語的に違和感がありました。 it { expect(hoge).to be_true } 複数行でもitの意味が分かりません。 it do result = hoge expect(result).to be_true end もちろん、今までのshouldであれば自然です。 subject { hoge } it { should be_true } 前の記事で知りましたが(※)、lib/rspec/core/example_group.rbのとおり、 itはexampleやspecifyで置き換え可能なので、今後はitは使わない方が良 い気がしました。 example { expect(hoge).to be_true } # or specify { expect(hoge).to be_true } ※ https://github.com/rspec/rspec-core にも置き換え可能云々は書いて ありますね。 複数行でもそれほど変ではありません。 example do result = hoge expect(result).to be_true end # or specify do result = hoge expect(result).to be_true end ここまで書いて、改めてrspecのテストを確認しました。...

2013-12-31 (Tue) · masutaka