У меня есть некоторые тесты, как это:Как сделать JUnit для печати утверждает и результаты
@Test
public void test01()
{
Position p = getPositionAt('a', 1);
assertNotNull("a1 exists", p);
assertNotNull("figure exists a1", p.getFigure());
p = getPositionAt('a', 2);
assertNotNull("exists a2", p);
assertNull("figure exists a2", p.getFigure());
p = getPositionAt('b', 1);
assertNotNull("exists b1", p);
assertNull("figure exists b1", p.getFigure());
}
Что мне нужно во время выполнения тестов, чтобы напечатать каждое сообщение Assert на стандартный вывод, а затем привести в утверждают.
Это требует формат из тестового класса:
a1 exists -success
figure exists a1 -success
exists a2 -success
figure exists a2 -succcess
exists b1 -succcess
figure exists b1 -failed
Но как сделать это? Я совсем недавно работаю с JUnit и понятия не имею. Есть ли способ использования runners
и suites
? Или существуют какие-либо методы assertSuccess()
, assertFailed()
? Спасибо за любой намек.
К слову, 'message' параметр применим только, когда утверждение не удается, так что ваш' assertNotNull' сообщение должно быть на самом деле «a1 не существует "и т. д. – Jonathan
любая конкретная причина, по которой вы хотели бы этого? –
Обе ваши потребности можно рассматривать как анти-шаблон в мире тестирования устройств. В ваших тестах следует утверждать только одну вещь, поэтому не должно быть никаких оснований для нежелания утверждать.Ваши тесты должны быть автоматизированы, при этом все проверки выполняются с помощью утверждений, поэтому нет необходимости запрашивать распечатку для ручной проверки. На практике есть веские причины для первого, например, запуск тестов, управляемых таблицами, и необходимость множественных вызовов assert для проверки одного логического факта. Будьте осторожны со вторым. Автоматизация - единственный путь вперед в тестировании единиц измерения и регрессии. – user7610