ビュー仕様間でコードを共有する

私はいくつかのビュー仕様を持っています:特定のRails(3)コントローラの編集、インデックス、新規、表示、およびそれらの間で共有される定型的な設定コードをいくつか持っていたいと思います。私はspec_helper.rbファイルに配置しないでください。何か案は?

具体的には、spec/views/stepsには、{edit、new、show、index}
.html.erb_spec.rbの4つのファイルがあります。私は彼らにいくつかのコードを共有したいと思います。

  let(:workflow) do
    document = Factory.create(:document)
    document.user = user
    document.save!
    document.workflow
  end

たとえば、正確なコードは重要ではありません。私はspec_helper.rbに入れないでこれをしたいと思います。

ベストアンサー

あなたはrspecがこれにちょうどいいことがわかります:共有コンテキストを参照してください。

それはあなたのような何かをすることができます

shared_context 'workflow' do
  let(:workflow) do
    document = Factory.create(:document)
    document.user = user
    document.save!
    document.workflow
  end
end

異なるスペックファイル間でこれを共有する必要がある場合は、 spec/support
の中に保存するファイルに記述します。あなたのテストでは、次のように書くことができます:

describe 'Something' do
  include_context 'workflow'

  it 'behaves correctly' do
    ...
  end
end

お役に立てれば。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です