7

だから...最近、私はユニットテストの素晴らしい世界(うなり声のカルマ(真ん中のAngularJS))に強制的に紹介されました。私のコードがテストケースなしでどのようにまとめられたのか、本当に信じられません...

とにかく、私の質問に戻ると、私が行っているJavaプロジェクトでも、ほとんどのクラスに単体テストを追加しています...しかし、答えが見つからない質問に出くわしました(または、間違った質問をしているのかもしれません) しかし、Java で e2e テストを適切に作成するにはどうすればよいでしょうか? これにJUnitを使用できますか?または、まったく別のものを使用する必要がありますか?私のプロジェクトには多くのデータベースの移動も含まれています。最近、テストでデータベースを使用する場合、それはもはや単体テストではないことを読みました...このテストも変更する必要がありますか?

ここに質問を投稿するのはこれが初めてです =) しかし、私は何年もの間、このサイトを使用して回答を見つけてきました...追加または変更する必要がある余分なデータがある場合は、お知らせください...そして私はこの質問への回答だけでなく、この素晴らしいサイトが人々の共有に役立つすべての質問へのすべての回答に対して、事前にここにいるすべての人に感謝します...

4

3 に答える 3

2

私の前のすべての回答は役立つので、同じ情報は繰り返さない.

はい、テストでデータベースにヒットした場合、それはユニットではなく統合テストであるか、JavaScript コミュニティで呼ばれているように、エンドツーエンドです (ただし、なぜ彼らが同じに固執しなかったのかはわかりません用語)。私の経験からする@Beforeと、 でトランザクションを開始し、 メソッドで拒否する方がよいでしょう@After。このようにして、データベース アクセスを模倣していないため、結果が可能な限り現実世界に近いことを確認できます (データベース側で問題が発生したかどうかを検出できます)。

逆に、テストをより速く実行できるようにデータベースへのアクセスをモックしたいという意見も多く見られますが、この時代では速度はもはや問題にならないと思います。データベースにヒットし、それをモックしないでください:)

于 2014-04-19T06:37:41.153 に答える
0

Java での e2e テストには JUnit のみを使用できません。テストのさまざまなレイヤーで使用できる多くのサードパーティ製ツールを使用する必要があります。

JUnit を使用して DAO 呼び出しをテストする例 Maven を使用してテストを実行し、その時点でデータベースにデータが存在しない場合、テストが失敗してビルド全体が停止する場合、理想的にはデータベースへの接続を望まない場合があります。実稼働環境でのビルド中に発生してはならないプロジェクト。

では、この問題をどう乗り越えるか。データベース呼び出しをモックする必要がある場合は、MOCKITO サードパーティの通話料を使用してデータベース呼び出しをモックすることができます。したがって、使用できるネット上で利用可能な他のツールがあります。

理想的には、何らかのロジックを含むコードをテストするためにのみ JUnit を使用し、このロジックが特定の方法で機能することを期待します。プロジェクトのビジネス層にロジックを持つコード内のさまざまなメソッドをテストします。

于 2014-04-19T06:12:04.770 に答える