概要
rspec config | alias_example_to
詳細
RSpec.configureのalias_example_toを利用すると
it(example, specify)やdescribe(context)にエイリアスを追加できます。
利用目的としては
・単純に好みの名前を付ける
・特定のオプションと併せて定義できる点を利用して
オプション+エイリアスで利用する。
この利用方法はRSpecが「pending」「xexample」などを定義しているのと同じです。
※RSpec本家のソースコードが気になる方は下記のコード内を「xexample」などで検索してみてください
https://github.com/rspec/rspec-core/blob/master/lib/rspec/core/example_group.rb
など。
特にオプションと組み合わせる使い方は独自に定義したオプションなどと組み合わせると便利そうです。
例えば、一部のexampleのみテストと同時に画面キャプチャも行いたい場合に
画面キャプチャの有無をオプション化し、
オプションをtrueに設定したaliasをcapture_itなどと命名する・・・など。
※最新のGitHubのRSpecのソースコードを見るとalias_example_group_toも追加されているので
describeやcontextのエイリアスも追加できるようです。
サンプル仕様
itのエイリアスとして「例」を追加。
hige_spec.rb
require 'spec_helper' require 'hige' describe Hige do context "hige1", :hige1 => "hige1_outer" do 例 "hige1", :hige1 => "hige1_inner" do expect("hige1_inner").to eq(example.metadata[:hige1]) end end 例 "hige2", :hige2 => "hige2" do expect("hige2").to eq(example.metadata[:hige2]) end end
spec_helper.rb
RSpec.configure do |config| config.treat_symbols_as_metadata_keys_with_true_values = true config.run_all_when_everything_filtered = true config.filter_run :focus config.alias_example_to :例 end
実行結果
$ rspec Run options: include {:focus=>true} All examples were filtered out; ignoring {:focus=>true} case hige2 .case hige1 . Finished in 0.001 seconds 2 examples, 0 failures