0

私は Statement クラスの evaluate() メソッドを理解しようとしていました。たとえば、JUnit の各 '@Test' の後、および各 '@After' の前に Apply '@Rule' に存在するコードに従って言います。

evaluate メソッドは実際には前後の両方で実行され、その後先に進みます。

                @Override
            public void evaluate() throws Throwable {
                // TODO Auto-generated method stub
                try{
                System.out.println("I am Rule1");
                arg0.evaluate();
                System.out.println("I am Rule2");

                }

上記のコードの結果の一部は次のとおりです。

I am Rule1
I am before
I am Test1
I am Rule2

では、「I am Rule1」の後、evaluate メソッドで「I am before」と「I am Test1」はどのように表示されるのでしょうか。

4

1 に答える 1

0

@Ruleアノテーションのjavadocから:

TestRuleに渡されたステートメントは、Beforeメソッド、Testメソッド、最後にAfterメソッドの順に実行されます。

evalute()つまり、ステートメントでメソッドを呼び出すと、上記のことが起こります。呼び出しを囲むコードは、関連するものevaluate()の前と後にそれぞれ呼び出されます。Statement

于 2012-12-13T13:39:14.443 に答える