3

私は現在、Struts2 フレームワークを使用する 1 つのプロジェクトに取り組んでいます。DB アクセスには別のコンポーネントを使用しますが、これは十分にテストされています。同時に、私たちが取り組んでいるプロジェクトには、テストされていない多くのアクションがあります。ほとんどのアクションで、少なくとも 1 つの DB サービス呼び出しを使用します。したがって、一方でこれらのアクションは非常に単純です。よくわかりません-そのために単体テストを作成する必要がありますか?

常に単体テストを書くことは良い習慣だと思いますが、これらのアクションは非常に単純であり、私は現在、管理側から大きなプレッシャーを受けています. では、Struts2 のアクションを単体テストなしで残すことは重要でしょうか?

4

3 に答える 3

6

ユニットテストを作成する3つの主な理由は次のとおりです。

  • これは、コードが現在機能していることを知るのに役立ちます。
  • 将来機能が追加または変更されたときに、リグレッションエラーからコードを保護するのに役立ちます。
  • コードを書く前に単体テストを書くと、それは本当に良い方法で設計プロセスに焦点を合わせます-これを行うことの利点についてもっと学ぶためにTDDを読んでください。

したがって、単体テストを作成するこれら3つの理由のいずれかがここに当てはまるかどうかを自問してください。3つの質問すべての答えが「いいえ」の場合は、単体テストを作成し、それらをコードベースに保持するコストを検討してください。このコストを考えられるメリットと比較してください。単体テストを作成する必要があるかどうかについてインテリジェントな決定を下し、その決定を上司に弁護する準備をします。

ただし、「すべてのクラスで、単体テストは常に優れている」という先入観を持たないでください。そして、「ユニットテストは常に不要である」という反対の概念を持ち込まないでください。どちらも真実ではありません。

于 2012-04-15T12:43:15.277 に答える
1

私は、Guice と Google Wave に取り組んだDhanji Prasannaと同じキャンプにいます。100% のカバレッジではなく、適切なコンポーネントに適切なフィードバックを提供する貴重なテストを作成して、開発を支援し、コードのリグレッションから保護します。

私の Struts2 アプリの 1 つで、非常に複雑なデータ検証要件がありました。数千。struts2-junit-plugin を使用して、Spring 3 IoC および Struts2 検証と、多くの異なるデータ シナリオでモック リクエストを入力するためのカスタム メカニズムを使用して、統合されたコンテキスト内でアクション クラスをテストしました。これらのテストは、開発中および保守ツールとして非常に貴重です。

しかし、いくつかの単純なアクションについては、それらを作成するために費やされた時間と比較して、あまり価値が戻ってくるとは思えません。ただし、非常に単純な場合は、書くのにそれほど時間はかかりません。

私はまた、100% のカバレッジの概念が原因で、100% のクラスが思慮のない、価値のないテストが書かれているというケースも見てきました。私のお金のために、私はテストが最大の価値を提供する領域を最初に特定し、それらを非常にうまく行うことに集中することに投票します.

于 2012-04-30T02:37:08.560 に答える
0

関数の単体テストを作成する必要があると問題が発生する可能性がありますが、いずれにせよ、将来的には、それをテストできるアクションでの検証が行われる可能性があります。アクションのテストに費やす時間は少し長くする必要があります。それを行うことをお勧めします。アプリのすべての層には、不要でない場合は機能が必要であり、アーキテクチャを確認する必要があります。

于 2012-04-15T18:15:30.720 に答える