私はcapybaraのrspec統合テストの初心者です。 動的に計算されたパラメータを持つ共有サンプルを呼び出すにはどうすればよいですか?動的計算パラメータを使用した共有サンプルの呼び出し
shared_examples_for "a measurable object" do |example, display_name|
it "is example - #{display_name}" do
visit "www.example.com?args=test"
expect(page.find("#examplediv").text).to eq example
end
end
describe "example" do
# where to compute this dynamic_value
it_behaves_like "a measurable object", dynamic_value, "example 1"
end
describeとshared_exampleの両方が別々のファイルにあります。
上記のコードスニペットでは、メソッド呼び出しから取得したデータに基づいてdynamic_valueを計算します。
「dynamic_value」の値はどこで計算されますか?
私はbefore :each
とbefore :all
で計算しようとしましたが、どちらもうまくいきませんでした。
私は説明文を使ってコールサイクルを説明するといいかもしれません。
ありがとうございます。
これは、「コールサイクル」http://www.wulftone.com/2012/01/22/rspec-gotchas-before-after-all-and-each/で少なくともお手伝いします。それ以外のあなたの質問は私には少し不明です – engineersmnky
そのブログは共有の例について話していませんし、it_behaves_likeが引数に基づいて一意の "it"ブロックを作成するために前処理されています。 –
あなたは記述ブロックの呼び出しサイクルを尋ね、 'before:each'と' before:all'を使用してコメントをしました。そうでなければ、質問に基づいて渡される唯一の値は、文字列「動的値」( 'expect(example).to eq「動的値」)です。 – engineersmnky