4

私はRSpecを初めて使用するので、これは非常に基本的な質問です。私は、ファイルから多くのデータを解析し、いくつかの処理を実行し、要約された結果を返すものを書いています。これはすべて、Rubyで行うのに非常に便利です。

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

私は多くのグーグルを実行しましたが、そのような状況のベストプラクティスの例を見つけることができませんでした-私が見つけたものはすべて、代わりにモックデータを示唆しているようです。

したがって、明確にするために、テストコード自体にモックアップされたものに対してではなく、実際のテストデータファイルに対してRSpecテストを実行するためのベストプラクティスを知りたいと思います。ファイルを開いたり、読んだりするのはとてもうれしいですが、それは問題ではありません。私が本当に興味を持っているのは、テストとテストデータディレクトリをどのように構成するのが最善かということです。

4

1 に答える 1

4

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

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

たとえば、ファイルを開こうとしたときに、UTF8 以外のデータが適切に処理されていないことに気付いたとします。問題の行を使用するデータとして新しいテストを作成します (単純に大規模なテストの一部として残すのではなく)。そうすれば、再度失敗した場合でも、どこが問題なのかを正確に特定できます。

于 2012-04-13T16:31:33.753 に答える