くりにっき

フルスタックキュアエンジニアです

RSpecで一時ディレクトリを作るサンプル

ファイルを作るメソッドのテストをしたくてrspecで一時ディレクトリを使いたかったのですが、よいサンプルがなくて自分で作りました*1

JUnitTemporaryFolder に相当するものがほしかった)

  • around はテストの前後に共通の処理を挟みたい時に使うhook
  • Dir.mktmpdir は一時ディレクトリを作るメソッド
    • ブロックを抜ければ一時ディレクトリは勝手に削除されるが、 Dir.mktmpdir のブロック内で example.run することでテスト内でその一時ディレクトリを使うことができる
    • 作った一時ディレクトリの名前は temp_dir で取得
  • shared_context でモジュールしておくことで、describeinclude_context して再利用できる
    • ところで shared_context の名前をシンボルにするのって少数派?
  • gem化するほどのボリュームもないのでgistで公開
  • rspec 3.0.0で確認済み
  • ググっても全然見つからなったけどたぶんどっかでいい感じにgem化されてるんだろうなー

追記

上記コードはgemにしてリリース済です

sue445.hatenablog.com

*1:ググっても古い記事しか見つからなかった