注:JUnitのエコシステムで複数のassertEquals()を実装しているため、MyTestのコードが更新されました。 。JUnitは、オーバーライドされたTestWatcherの失敗/成功メソッドを呼び出すようではありません
私はCで同様の質問を見ましたが、回答/応答はありませんでした。私は実装を左に回したか、単純なものを見落としています。だから...
私はコンソールに "IT FAILED"と "IT PASSED"が見えると思うが、喜びはない。単に "testFailure()"と "testSuccess()"の出力。
テストランナーのIMPL
import junit.runner.Version; // added to support version check
import org.junit.runner.JUnitCore;
public class TestRunner {
public static void main(String[] args) {
System.out.println(Version.id()); // added to check JUnit version
JUnitCore.runClasses(MyTest.class);
}
}
テストIMPL
// NO LONGER NEDED (v3 -v- v4) import junit.framework.TestCase;
import org.junit.Rule;
import org.junit.Test;
import ort.junit.Assert.assertEquals; // version that invokes TestWatcher
// public class MyTest extends TestCase { // JUnit v3.X semantics
public class MyTest { // JUnit v4.X semantics
@Rule
public MyTestWatcher myTestWatcher = new MyTestWatcher();
@Test
public void testFailure() {
System.out.println("testFailure()");
assertEquals("failure", true, false);
}
@Test
public void testSuccess() {
System.out.println("testSuccess()");
assertEquals("failure", true, true);
}
}
TestWatcherのIMPL
Javadocで 'TestWatcher'を正しく使用していません:http://junit.org/junit4/javadoc/4.12/org/junit/rules/TestWatcher.html – Tunaki
私はちょうどコピーして貼り付け、すべて正常に動作します。ここに。 olds jarファイルをきれいにして、すべてを再構築してみてください。 – Paulo
"JavadocによるとTestWatcherを正しく使用していません..."は "私はちょうどコピーして貼り付けて、すべてうまくいきます..."と思われます。 しかし、少なくとも私はコードが期待される結果を生み出すべきであることを知り、コード自身の環境にも集中することができます。 – SoCal