0

を使用するfixture_file_uploadと、ファイルは期待どおりにアップロードさpublic/tmpれます。ただし、これらのファイルはファクトリ ( factory_girl) で作成されているため、public/tmpテスト中にアップロードされたファイルでいっぱいです。

これらのファイルをクリアする、またはテスト中にオブジェクトが破棄された後にファイルを削除するための推奨される方法は何ですか?

4

1 に答える 1

2

RSpec を使用すると、スイートの前または後に実行されるブロックを定義できます。以前にファイルを削除することを好みます。これにより、テスト後にファイルが残るため、一時ファイルを検査できます。しかし、テストの前に古いファイルをクリアするので、テストを実行するたびにパスがクリーンになります。

spec/spec_helper.rb:

RSpec.configure do |config|
  ......
  config.before(:all) do
    if Rails.env.test? || Rails.env.cucumber?
      FileUtils.rm_rf(Dir["#{pstore_path}/[^.]*"])
    end
  end

pstore_path私のspec_helper-fileの別の方法です。FileUtils.rm_rf....この例に示すように、ディレクトリ全体ではなく、削除するファイルのみを削除するように行を変更できます。

before フィルターと after フィルターを組み合わせて、テスト前に既に存在するファイルを記録し、テスト中にconfig.afterブロック内に作成されたファイルを削除できます。

于 2013-08-09T15:24:23.390 に答える