rspecを使用して妥当性をテストする結果セットを返すプロセスがあります。プロセスはパラメータに基づいて異なる結果を返しますが、すべてに共通する例がたくさんありますので、それらのすべてに対して実行できる共通の例を作成したいと思います。rspec共有サンプルにパラメータを渡す
私は、好ましい方法はletを使用して結果を構築することです。問題は、各プロセスが結果を生成するのに1〜2分かかり、私はおそらく30の例があるということです。異なるパラメータに基づくすべての順列で、私は約500例を実行しています。各例の結果を再構築する必要があった場合、テストは1日以上実行されます。
ので、代わりに私が前に結果を構築しています(すべて)のブロックと、このような属性の何かに割り当てる:
RSpec.describe 'Test Description' do
attr_reader :result
before(:all)
@result = build_result({some_parameters})
end
context 'Some context' do
it 'Looks lik a result' do
expect(result.something).to ...
end
it 'Feels lik a result' do
expect(result.something).to ...
end
end
end
はたぶん属性を使用して、より良い方法があります。私はこのようなことをしたい:
RSpec.describe 'Test Description' do
attr_reader :result
before(:all)
@result = build_result({some_parameters})
end
context 'Some context' do
it_behaves_like "A result" result
end
end
このコンテキストでは、属性を使用すると失敗します。これを行う別の方法はありますか?
これは私が望んでいたものではありませんが、これまでのところ最高の答えです。 –