0

JUnitでいくつかのテストをカバーする必要があります。私のメソッドはjava.io.Fileを返します。チェックする必要のある属性は何ですか?

  • ファイルサイズを確認しますか?
  • ファイル名を確認しますか?
  • 小切手 ...?

ファイルを操作するメソッドのJUnitテストをどのように記述しますか?フレームワークはありますか?

4

3 に答える 3

3

メソッドは java.io.File を返します。それを確認する最良の方法は何ですか?

「最善の方法」はありません。それは、ファイルに何が含まれていると想定されているか、および何をテストする必要があるかによって完全に異なります。

さまざまな状況で、次のことをテストする場合があります。

  • 引数はFile非 null です。
  • によってエンコードされたファイルパスは、指定されたFile値を持ち、
  • 対応するファイルが存在し、
  • 対応するファイルには長さまたは行数が指定されています。
  • 対応するファイルには、指定された文字列 (または文字列) またはパターン (パターン) が含まれています。
  • ファイルの内容は、期待される出力のファイルと正確に一致します。
  • ファイルの内容が別のファイルと同じデータ構造に解析される、または
  • ファイルの内容は、他のプロパティのデータ構造に解析されます。
于 2012-06-29T10:43:57.190 に答える
2

テストを実行するためにいくつかの一時ファイルを作成したい場合は、JUnit ルールを で試す必要がありますTemporaryFolder

ここに例があります。

これは、必要なファイルを使用してテストを準備する方法です。

しかし、それはすべてあなたが実際にやりたいことにかかっており、あなたの質問は実際には多くの手がかりを与えていません...

于 2012-06-29T10:44:51.027 に答える
1

すべてのテストは、要件に基づいている必要があります。たとえば、メソッドは、安全に作成できる存在しないファイルの名前を返すと主張できます。単体テストでは、そのようなファイルが実際に存在しないことを確認する必要があります。

assertTrue(!file.isDirectory() && !file.canRead())

返されたファイルがいくつかのプロパティを持つファイルであることが要件で示されている場合は、要求されたプロパティを正確に確認する必要があります。たとえば、位置 3 の要件に従って、シンボル「@」を発見しました。したがって、テストは次を確認する必要があります。

  1. ファイルは実際に存在し、読み取ることができます
  2. 位置 3 には実際に期待されるシンボルが含まれています
于 2012-06-29T10:34:43.647 に答える