1

私の質問は、Adobe cq5 での統合テスト用の JUnitServlet に関するものです。テストを実行し、テスト メソッドに誤りがある場合、彼の側からのエラー メッセージのみが表示されます。テスト メソッド アサーションに記述したメッセージをどのように確認できますか。

例えば:

テストメソッドにいくつかの「assertNotNull」があり、テストが失敗した場合、サーブレットは次のような結果を表示します。

テスト終了: () : Null

私は深く入力しようとしました:

テストセレクター: RequestParser、testSelector [testClass]、methodName [testMethod]、extension [html]

ただし、クラス全体を thests で実行します。

テスト クラスからテスト メソッドを 1 つだけ実行して、このサーブレットでアサーションからのメッセージを表示することはできますか? ありがとう!

4

1 に答える 1

0

失敗した場合に追加情報を出力できるように、(少なくとも最初は) try/catch ブロック内でアサーションを構造化してみてください。単体テストの出力でマスクされているテスト自体に問題がある場合、これはより有用な情報を提供することがわかりました。それが問題である場合、おそらく単一のテストに絞り込む必要はありません。

@Test
public void testYourTestName() throws Exception {
    try {
       //Code to prepare the object to be tested
        assertNull("This is my null test", objectToBeTested);
    } catch (Exception e) {
        String failureMessage = "\n" + e.toString() + "\n";
        for (StackTraceElement stackLine : e.getStackTrace()) {
            failureMessage += (stackLine.toString() + "\n");
        }
        fail("Error: " + failureMessage);
    }
}

または、 assertEquals テストを使用すると、次のようにもう少し役立つ表示が得られることがわかりました。

assertEquals(null, objectToBeTested);

上記の assertEquals が失敗すると、次のような出力が得られます。

testMyTestName(com.myCompany.myApp.myPath.myTests): 予想:<null> だったが:<java.lang.Object@5c9e4d73>

ところで、あるクラスに存在するテストを 1 つだけ実行する方法はわかりませんが、おわかりのように、特定のクラスのすべてのテストを実行するように絞り込むことができます。com.myCompany.myApp.myPath 名前空間の SomeTestClass にあるテストを実行するには:

http://localhost:4502/system/sling/junit/com.myCompany.myApp.myPath.SomeTestClass.html
于 2012-06-25T23:25:59.093 に答える