3

以下のプラクティスに従って、メソッドの JUnit テストを記述します。

  • 各メソッドには、そのメソッドに必要なすべてのテストを保持する独自のクラスがあります。例: クラス テスト {...}

  • @Before は、「エンティティ」などのメソッドの必要条件ごとのセットアップで構成されるため、編集を行うときに、各メソッド レベルでエンティティを追加するためのコードをコピー/貼り付ける必要はありません。

ここで私の質問は、 @after メソッドでテストデータを破棄するコードを記述して入力したすべてのデータを削除するか、そのままにしておくべきかということです。

構成可能にできることはわかっていますが、ベストプラクティスは何ですか? 保持するか、削除します。私の直感によると、dbに既に重複データがあるかのように削除する方が良いはずです-間違ったtrueまたはfalseをトリガーする可能性があります。

4

2 に答える 2

4

それは、Don't Repeat Yourself の原則をどれだけ順守しているかによって異なります。また、実行する@Afterたび@Test@AfterClass呼び出し、すべての@Test実行後に呼び出したことを覚えておく価値があります。この細分性により、重複を簡単に削除できますが、最後または各テストの後にのみ実行する必要があるタスクを分割できます。

于 2013-02-06T19:41:55.940 に答える
2

ベスト プラクティスとして、各テストが他のテストから確実に分離されるように、すべてのテストの間にデータ ストレージをクリアすることをお勧めします。

@After一部の設定を維持したい場合は、メソッドを使用してこれを行うことができます (@BeforeClassたとえば、 から)。これはメソッド内で行うこともでき@Beforeます。たとえば、変数をテストごとに新しいインスタンスでオーバーライドすることによって実行できます。その場合、テスト後のクリーンアップは必要ありません。

@BeforeClassメソッドの設定をクリーンアップするには@AfterClass、たとえば、データベース接続を閉じるために使用する必要があるか、一度だけ実行する必要がある類似の何かを使用する必要があります。ただし、これはあらゆる種類の単体テストに必要なわけではありません。

于 2013-02-06T20:01:06.347 に答える