を使用するfixture_file_upload
と、ファイルは期待どおりにアップロードさpublic/tmp
れます。ただし、これらのファイルはファクトリ ( factory_girl
) で作成されているため、public/tmp
テスト中にアップロードされたファイルでいっぱいです。
これらのファイルをクリアする、またはテスト中にオブジェクトが破棄された後にファイルを削除するための推奨される方法は何ですか?
を使用するfixture_file_upload
と、ファイルは期待どおりにアップロードさpublic/tmp
れます。ただし、これらのファイルはファクトリ ( factory_girl
) で作成されているため、public/tmp
テスト中にアップロードされたファイルでいっぱいです。
これらのファイルをクリアする、またはテスト中にオブジェクトが破棄された後にファイルを削除するための推奨される方法は何ですか?
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
ブロック内に作成されたファイルを削除できます。