3

spring+hibernate Web アプリケーションに使用するテスト フレームワークを考えています。最初は Unitils を見つけてかなり興味を持ちましたが、標準の Spring TestContext フレームワークを見て、疑問を持ち始めました。私は主題にかなり慣れていませんが、これまでのところ私の理解は次のとおりです。

ユニティルの長所:

  • EasyMock や DbUnit など、他のさまざまなテスト フレームワークが混在しています。
  • フレームワークの上に構築され、休止状態マッピング テストやリフレクション テスト ユーティリティなどの付加価値を提供します。

Spring TestContext フレームワークの長所:

  • テスト時に標準のSpringアノテーションを使用できます
  • おそらくより大きなユーザーベースとより良いサポートを持っています(Unitilsは基本的に2人によって作成されているように見えるため、これは私の仮定です)
  • また、いくつかの Unitils 機能が組み込まれています (リフレクション テスト ユーティリティなど)。
  • DbUnit や EasyMock などの Unitils の「より大きな」機能が必要な場合は、通常の DbUnit または EasyMock をソースから直接入手できます。これにより、Unitils がリリースするのを待たずに、常に最新バージョンの DbUnit/EasyMock を使用できます。現在の DbUnit/EasyMock を使用した新しいバージョン

したがって、今のところ、Spring TestContext フレームワークの使用に傾倒しています。これらのフレームワークについてもう少し経験があり、正しい方向に傾くのを手伝ってくれる人はいますか? これらすべてのフレームワークの統合を除いて、Unitils は実際にそれ自体で何を提供しますか?

[編集] Unitils が提供するいくつかの機能について知りました。

Unitils を使い始めるきっかけとなった Unitils に関する素晴らしいプレゼンテーションを次に示し ます。

当分の間、質問を開いたままにします。おそらく誰かが他の考えを思い付くでしょう...

4

2 に答える 2

3

プロジェクトでは、UnitilsとSpringのテストフレームワークを使用しています。ユニティで問題が発生したのは、複数のPersistenceUnitがあることでした。Unitilsはそれをサポートしていません。もちろん春はそうです。

私がここに投稿した別の問題:unitils / dbMaintainを使用してデータベースを維持する方法、スクリプトの実行を除外する方法は?

基本的に、unitilsは、他のフレームワークの「古い」バージョンを隠蔽して使用しているため、DBMaintainなどの基盤となる各フレームワークの最新機能をすべて備えているわけではありません。

とは言うものの、Unitilsには、 DatabaseUnitilsで提供されているもののようないくつかの優れた便利なメソッドがあります。私たちは特に好きですupdateSequences()

したがって、究極の柔軟性を実現するため、および/またはかなり複雑なコード構造が予想される場合は、可能な限りSpringのテストフレームワークを使用します。

他の多くの場合、unitilsは非常に便利なツールです。

そして少しps..可能であれば、ユニットテストとMockitoのようなモックフレームワークと統合テストを優先することをお勧めします。私は常に「統合テスト」のヘビーテスターでしたが、この最後のプロジェクトでは、メンテナンスの課題になりました。

于 2012-02-21T19:41:26.827 に答える
1

ご指摘のとおり、Unitils は非常に優れたフレームワークです。

長所:

  1. Unitils は Spring jar を使用するようになりました。
  2. Unitils inject モジュールは私の見解ではうまく機能しますが、春にもそのようなことを達成できます。

短所: あなたが言ったように、Unitils フォーラムでの適切なサポートが不足していると思います。長い間回答されていない多くのスレッドが表示されます。ただし、stackoverflow はそれを適切にサポートしています :-) 追加機能やバグ修正が必要な場合を除きます。

個人的には、Unitils は私のテストに適していると思います。

于 2012-01-09T17:20:46.487 に答える