ある処理で行われるファイルの移動が適切かどうかテストしたかったので、カスタムマッチャを作ってみた。使用したのはRSpec 1.3.1。 目標のspec lambda { foo }.should move_file(src, dest) チェックする項目 fooメソッドを実行する前にsrcにファイルが存在することをチェック(事前チェック) Foo#barを実行した後にsrcにファイルが存在しないことをチェック(事後チェック) Foo#barを実行した後にdestにファイルが存在することをチェック(事後チェック) srcとdestのMD5値が一致することをチェック(事後チェック) (1は要らないかも?) 実際のコード CustomFileMatchers::MoveFileのmatches?で具体的なテストを実行する。 使い方 describe文のなかでincludeして使う。 ためしにちゃ