• ベストアンサー

JUnitをITでつかう。

お世話になります。 最近JUnitというものを知りちょっと遊んでみたくなりました。 WEB等で使い方を調べていますと 主に単体テストに使っている説明でした。 Unitテストだから当たり前のような気もしますが。 ITで使うためにはどうしたらよいのでしょうか? またWebアプリのような場合はどのように使えばよいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#16216
noname#16216
回答No.1

> ITで使うためにはどうしたらよいのでしょうか? どのようなレベルのものを想定されているのか分かりませんが、 単体テストでやっているのと同様、Inputに対する正常/異常なOutput の評価として使えばよいのでは? > またWebアプリのような場合はどのように使えばよいのでしょうか? Jakartaプロジェクトで作成されているCactusが、Webアプリのテスト用に 拡張されたJUnitです。

参考URL:
http://jakarta.apache.org/cactus/index.html
watapen
質問者

お礼

お礼遅くなって申し訳ありません。 早速のご回答有り難うございました。 Cactusですか。 調べてみます。 というかネットで調べる限りではあんまり参考にならず... どなたかサンプルでも提供していてくれたらいいのですが...

関連するQ&A

  • Junitについて

    junitを利用してテストするというのは、あるメソッドに引数を あたえてその戻り値が正しい結果であるかとい事を判定するためのツールなのでしょうか 実践的なjunitのテストケースについて参考となる本やサイトはないでしょうか ※Junitと単体テスト技法という本は読みました。 (DBを利用したテストケースなどを勉強したいと思っています。)

    • ベストアンサー
    • Java
  • AntでのJunitの試験(II)

    先ほどの「AntでのJunit試験」の続きです。(ベストアンサーを押してしまったため、返信が受けられなくなったため、新規にたちあげました。) 情報ありがとうございます。 ご指摘のように、EclipseのUnitテストで使っている、org.hamcrest.coreのjarファイルを build\libの下に置いて走らせるとJunitの試験はパスするようになりました。 ありがとうございました。 後、ひとつだけ分かれば教えていただきたいのですが、 現在、コマンドプロンプトのbuild.xmlが置いてあるディレクトリから、>Ant unit-test を実行すると、Junitの試験はパスして、<junitreport>の記述でテスト結果をはいてくれて全て OKなのですが、 Eclipseのアウトラインからunit-testを右クリックして->実行->Antビルド を実行させると、Junitの試験はパスするのですが、<junitreport>の所で、 Error! staticでないJava関数'replace'の最初の引数は無効なオブジェクトの参照です。 Error! スタイルシートをコンパイルできませんでした。 Fatal Error! データ型'void'を'reference'に変換できません。Cause: データ型'void'を'reference'に変換できません。 となって、テスト結果のはき出しには失敗してしまうようなのです。 コマンドプロンプトで実行した場合は、ant-1.9.2を使っているのですが、Eclipseのデフォルトの プラグインのものはant-1.8.4のものを使っているようです。 Antタスクのjunitreportが使えるAntのヴァージョンのようなものがあるのでしょうか? また、1.8.4でもjunitreportが使えるような書き方とかあるのでしょうか?

    • ベストアンサー
    • Java
  • AntでのJunitの試験

    Antのbuild.xmlを下記のように記述して、Ant unit-testを実行させると、下記の[junit]の試験がFAILEDになってしまいます。これと同じJunitの試験はEclipse上のJunitの試験ではパスしていますので、Javaのテストプログラムそのものには間違いはありません。(同じファイルを使っています。) レポートファイルのエラーを見てみると、initializationErrorで、 org/hamcrest/SelfDescribing java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing at java.lang.ClassLoader.loadClass(ClassLoader.java:358) のようなエラーをはいていますが、理由が分かりかねています。 Antは、apache-ant-1.9.2、Junitは、juint-4.11.jarを使っています。 多分、下記xmlファイルの<junit>の書き方の問題ではないかと思うのですが、 AntのJunitの試験に詳しい方でお分かりになる方ございましたらアドバイスをお願いします。 <?xml version="1.0" encoding="UTF-8"?> <project> <property name="output" value="build/output"/> <target name="compile"> <mkdir dir="${output}/classes"/> <javac srcdir="src" destdir="${output}/classes"/> </target> <target name="unit-test" depends="compile"> <path id="for-unit-test"> <pathelement location="${output}/classes"/> <pathelement location="${output}/test-classes"/> <pathelement location="build/lib/junit-4.11.jar"/> </path> <mkdir dir="${output}/test-result"/> <mkdir dir="${output}/test-classes"/> <javac srcdir="test/src" destdir="${output}/test-classes"> <classpath refid="for-unit-test"/> </javac> <junit> <classpath refid="for-unit-test"/> <batchtest todir="${output}/test-result"> <fileset dir="test/src"> <include name="**/*Test.java"/> </fileset> <formatter type="xml"/> </batchtest> </junit> <junitreport todir="${output}/test-result"> <fileset dir="${output}/test-result"> <include name="TEST-*.xml"/> </fileset> <report format="frames" todir="${output}/test-result/report"/> </junitreport> </target> </project>

    • ベストアンサー
    • Java
  • JUnit結果出力をファイルに書き出す

    お世話になります。 JUnitの結果をファイルに書き出すにはどうしたらよいでしょうか? eclipseを使ってテストを行っています。 junit.textui.TestRunnerを使用しています。 テストが失敗したりすると Time: 0.031 There was 1 failure: 1) 失敗したテスト名 スタックトレース FAILURES!!! Tests run: 18, Failures: 1, Errors: 0 のように表示されますが、 この結果をファイルに出力するにはどうしたらよいでしょうか?

    • ベストアンサー
    • Java
  • 画面系のプログラムでTDDってどうするの?

    テストコードを先に書いて、 テストに合格するプログラムを書いてリファクタリング・・・・云々。 JunitやNunitなどを使う・・・・云々。 このような話はよく聞きます。 が・・・・。 業務ロジックのみがつまったような単体で動く モジュールには適用できそうですが。 Windowsアプリや、Webアプリの 画面の制御の部分のロジックに対して、 どのようにすれば、TDDを適用できるのでしょうか? 素朴な疑問ですが、よろしくお願いします。

  • JUnitのテスト結果の取得方法

    昨日でプロジェクトも一段落つき、現在eclipse + JUnitプラグインでテストする勉強をしています(遊んでる!?) そこで、テストをする材料として今回プロジェクトで作成されている共通クラスを使用していました。 で、全角英数記号文字を半角英数記号文字に変換するメソッドがありテストを書こうとして考えてしまいました。 ”→"と返ってくるはずなのですが、 aasertEquals(""",戻り値)と記述出来ませんよね? このような場合、どうすればいいのでしょうか? まあ、JUnitだけにかかわる問題でもないでしょうし、一般的な事なのかもしれませんがご指導ください。

  • 抽象クラスをJUNITでテストする方法

    抽象クラス内に実装メソッドと抽象メソッドがある場合に、 そのクラスをJUNITでテストしたいと思っています。 通常のクラスであれば、そのクラスに対するテストクラスを 作成して、テストクラス内でテスト対象クラスをnewして テストケースを記述していくと思いますが、 上記のような抽象クラスの場合は、 どういった形でテストクラスを作成すれば良いのでしょうか? 抽象クラスはnewできないので、 抽象クラスを実装したクラスをまず作成して そのクラスに対するテストクラスを作成するのでしょうか? お薦めの方法や一般的な方法があれば教えてください。 以上、よろしくお願い致しますm(__)m 【環境】 JDK1.4.2 JUNIT3.8.1

    • ベストアンサー
    • Java
  • JUnit4のアノテーションについて

    おおもととなる1つのテストケース(仮にA.class)内に対して、 @RunWith(Enclosed.class)アノテーションで、 複数のテストケース(仮にB.class、C.class)を、入れ子記述しています。 その中にある1つのテストケース(仮にB.class)で、 さらに、 @RunWith(Parameterized.class)アノテーションと、 @Parametersアノテーションを利用して、 テスト対象メソッドに渡す引数と期待値だけが異なるテスト (戻り値はCollectionで、Collectionの要素はObject配列とする) を複数回実行しています。 上記した1つのテストケース(仮にB.class)で、 Eclipse3.6上のJUnit4におきましては、 その1つのテストケースだけで 単体実行した際には、 全ての結果がOKになります。 しかし、 他にも存在している複数のテストケース(仮にC.class)とまとめて、 おおもととなる1つのテストケース(仮にA.class)から 実行した際には、上記した1つのテストケース(仮にB.class) でのみ、以下のJUnit4エラーが発生しています。 java.lang.Exception; No runnable methods at java.lang.reflect.Constructor.newInstance(UnKnown Source) このエラーを解消するには、どうすればよいでしょうか? (コンストラクタをインスタンス時のエラーのようでしたので、  以下に、コンストラクタ箇所を添付しておきます) public B( final String str_inTestData1, final int int_inTestData2, final int int_inTestData3, final int int_inCnt) { this.m_str_inTestData1 = str_inTestData1; this.m_int_inTestData2 = int_inTestData2; this.m_int_inTestData3 = int_inTestData3; this.m_int_inCnt = int_inCnt; } @RunWith(Enclosed.class)アノテーション内に対して、 ネストで作成したサブのテストケース用クラスに対しては、 @RunWith(Parameterized.class)アノテーションと、 @Parametersアノテーションを利用することは 出来ないというような制限などがあるのでしょうか? 以上です。よろしくお願いします。

    • ベストアンサー
    • Java
  • Junitテストでvoid戻り値メッソドをテストする方法

    お疲れ様です。 Junitテストでvoid戻り値メッソドをテストする方法について質問が あります。 戻り値なしのvoidメソッドをassertで検査したい場合どうしたら いいでしょうか。 ただexceptionとかが無く動いたら良いだけです。 お答えお願いします。

    • ベストアンサー
    • Java
  • JUnitのテストメソッドごとのメモリの確保とかの話

    JUnit関連の少しコアな話になります。 JUnitではデフォルトでは、実行する際初期処理としてまずテストクラス内のテストメソッドの数だけテストクラスをインスタンス化し、その後各テストメソッドを実行していく、という仕様になっているようです。そしてかつ、各インスタンスはテストクラス内のすべてのテストメソッドが終了するまでインスタンスの破棄は行わないようです。 上記の仕様であるはずだと言う根拠は、テストクラスにコンストラクタを作成し、そこにsysoutを記述することにより確認をしました。 上記の仕様であることが主原因で、Out of Memoryが発生してしまいます。 他にそうなってしまう原因はいくつかあって ・Springを利用していて初期化にメモリを結構使う ・テスト対象のクラスが複雑でテストメソッドの数が多くなる ・パソコンの物理メモリに限界がある ・DJUnitでカバレッジを調査することもあり、またテスティングペアの名前は統一したいので、テスト対象クラスとテストクラスを1対1に対応させたい。 などが挙げられます。VMの実行メモリを大きくしたり、テストクラスを分割してしまうなどの対処療法を行ってきましたが、何とか主原因をつぶす方法は無いものかと質問をした次第です。 (その他、使用しなくなったオブジェクトにnullをセットしたり明示的にgcの実行を指示する等の苦肉の策を行いましたが、ほとんど影響しませんでした) 前置きが長くなりましたが質問は、JUnitでテストを行う際、テストクラス内のテストメソッドの数だけインスタンス化しているものを、あるテストメソッドを実行する直前にインスタンス化し、そのテストメソッドが終了したらそのインスタンスを破棄するような設定はないのか、あればその方法を教えてほしい、ということになします。 だいぶ分かりにくい説明かもしれませんが…。 以上よろしくお願いします。

    • ベストアンサー
    • Java