2016-08-05 6 views
0

Tomcat Webアプリケーションをデバッグしていて、そこにテストコードを含むmainメソッドを持つクラスがあります。Java Webアプリケーションのmainメソッドの目的

これがWebアプリケーションから呼び出されているかどうかを確認する手段はありますか? IDE環境でこれまでの開発者テストの単なる方法でしたか?

+6

これは、テストを書くための古風なアプローチです.junitやtestngのようなものを使用する方が、より現代的なアプローチです。 TomcatにはTomcatを起動する独自のmainメソッドがあり、私の知る限り、(サーブレットなどから直接呼び出されない限り)他の主要なメソッドを呼び出すことはできません。 – Taylor

+0

あなたのIDEは、あなたがそれが使用されていないことを保証できるように、指定されたメソッドの呼び出し元をあなたに示すことができます。メソッド*が使用されている場合、ビルドしようとするとエラーが発生します。 – shmosel

答えて

0

static void main()メソッドはアプリケーションから呼び出されるべきではありませんが、クラス名がどこかで参照されているかどうかを調べることで調べるのが最も良い方法です(アプリケーションのすべてのプロジェクトのクラス名のテキスト検索は、反射が使用されてもよい)。あなたが参照を見つけることができない場合、それは良い兆候です。それについての参考文献がある場合は、その理由を理解する必要があります。 そうでなければ、私たちの戦争に含まれていないクラスをチェックする必要があります。 戦争中です。プロジェクトのテストフォルダ(Maven/Gradleなどのsrc/test/javaなど)に移動して除外する必要があります。

悪い設計(単体テストなし)のテストですか、または有益なテストコードですか? これはによって異なります。 テストする環境(リモートWebサービス、外部などの理由でマスタリングしていないデータ)をマスターしないため、単体テストなしでいくつかのテストを行う必要がある場合があります。それが原因でアプリケーションのビルドに失敗することを望みます。一般に、単体テストはビルド時に自動的に再生されます。 この種のテストではユニットテストを使用しないでください。static void main()を使用してください。このようにして、必要なときに手動テストを実行できます。結果が何であれ、ビルドに失敗することはありません。

この種のテストが行​​われたことに気がついた場合は、Javaコメントを追加する必要があります。それ以外の場合、テストが再現可能で、アプリケーションの内部サービスに依存し、データベースデータの変更に頼らない場合は、ユニットテストに変換する必要があることを示すためにFIXMEコメントを追加する必要があります。

関連する問題