2

rails(3.0.1)
fakefs(0.2.1)
ペーパークリップ(2.3.4)
rspec(2.0.1)

モデルをrspecでテストしています。これはテストなので、ペーパークリップのようにパブリックディレクトリにファイルが作成されないようにします。この回避策は、偽物を使用することだと思います。

私はこれを実装しましたが

http://trevorturk.com/2008/12/11/easy-upload-via-url-with-paperclip/

この行を入れないと、リモートURLから画像を保存できるようになります

FakeFS::SpecHelpersを含める

私のrspecでfakefsをアクティブ化するために、それはうまく機能します(そして、私がテストしたくないpublic / system ...の下にファイルを作成します)

偽物を有効にすると、何らかの理由で、次のようなエラーが発生します

一時ファイル`/tmp/stream20101027-704-adna7o-9.gif'を生成できません

メソッドで

  def download_remote_image
    self.image = do_download_remote_image
          ^ happening in this method
    self.image_remote_url = image_url
  end

/ tmpのアクセス許可はdrwxrwxrwtなので、誰でも書き込むことができると思います。

これが私の質問です。

  1. ペーパークリップ関連のメソッドをテストするために偽物を使用するべきではありませんか?
  2. そのようなテストのためのペーパークリップファイルの作成を気にする必要はありませんか?または問題を解決する他の方法はありますか?
4

0 に答える 0