Примечание: код для MyTest обновлен, чтобы отразить найденный вами ответ, вызванный множеством реализаций assertEquals(), доступных в экосистеме JUnit ,JUnit, похоже, не ссылается на мои переопределенные методы тестирования TestWatcher/удаленные методы
Я видел аналогичный вопрос на языке C, но ответа нет. Я либо сделал левый поворот в реализации, либо пропустил что-то простое. Итак ...
Я бы ожидал увидеть «ЭТО НЕИСПРАВНО» и «ЭТО ПРОШЕЛ» на консоли, но без радости. Просто вывод «testFailure()» и «testSuccess()».
TestRunner осущ
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 осущ
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
public class MyTestWatcher extends TestWatcher {
public MyTestWatcher() {}
@Override
protected void failed(Throwable e, Description description) {
System.out.println("IT FAILED");
}
@Override
protected void succeeded(Description description) {
System.out.println("IT PASSED");
}
}
Вы не используете «TestWatcher» в соответствии с Javadoc: http://junit.org/junit4/javadoc/4.12/org/junit/rules/TestWatcher.html – Tunaki
Я просто копирую и вставляю и все работает нормально Вот. Попробуйте очистить файлы jar olds и перестроить все. – Paulo
«Вы не правильно используете TestWatcher в соответствии с Javadoc ...», кажется, 180-й из «Я просто копирую и вставляю, и все отлично работает ...». Но, по крайней мере, теперь я знаю, что код должен давать ожидаемые результаты и может сфокусироваться на моей среде, как на самом коде. – SoCal