2012-04-13 11 views
4

私はRSpecの新機能ですから、これは非常に基本的な質問です。私は、ファイルから多くのデータを解析し、いくつかの処理を行い、要約された結果を返すものを書いています。これはRubyと非常に関係しています。RSpec - 模擬データではなく、実際のファイルとの比較

私はいくつかのRSpecテストをこのコードの周りに置いていますが、テスト内でデータをモックアップしたくありません。ファイルは大きく複雑です。これらのファイルでコードを動作させたいので、テストで直接作業したいものです。

私は多くのGoogle検索を行っており、そのような状況のベストプラクティスの例は見つけられませんでした。私が見つけたものはすべて模擬データを示唆しているようです。

このように、RSpecテストを実際のテストデータファイルに対して実行するためのベストプラクティスを知りたいと思います。私はファイルを開いて、それらを読んで、完全に満足しています、それは問題ではありません。私が本当に関心を持っているのは、私のテストとデータディレクトリのテストをどのように構築するのが最善かということです。

答えて

4

私が過去に行ったことは、読み取るファイルを保持するためにspecsフォルダ内にデータフォルダを作成することです。

私は実際のファイルを使用したいという意欲を理解しています。通常、実際のファイル内には、あなた自身で考えることのできない小さなエッジケースがあります。私のアドバイスは、ファイルを開き、必要な情報をテストするテストをすることです。また、テストが失敗した場合は、見つかったファイル内の特定の問題に対処するための新しいテストを作成します。

たとえば、ファイルを開こうとすると、UTF8以外のデータが正しく処理されないことがわかります。問題の行を使用するデータとして新しいテストを作成します(単に大きなテストの一部として残すのではなく)。そうすれば、それが再び失敗した場合、痛みポイントがどこにあるのかを正確に突き止めることができます。

関連する問題