- PVSM.RU - https://www.pvsm.ru -
Представим себе ситуацию, когда есть написанные тесты на JUnit`е и все работает отлично (ну хотя бы тесты написаны).
Но появляется чудо-идея, что TestNG был бы для этих тестов удобнее. Не будем вдоваться в холливор, какой из фреймворков лучше, круче или удобнее. Но факт в том, что API у них разный.
Конечно заменить поиском assertArrayEquals на assertEquals несложно.
Но менять позицию сообщения для падающего теста уже сложнее, тут нужно править ручками.
Не знаю, насколько актуальна эта проблема, но я с ней сталкивался много раз.
Так появилась шальная мысль — написать простенькую либу, с помощью которой поменять фреймворк можно без особой головной боли.
Я набросал примерный вариант [1] того, как оно может выглядеть и предлагаю это на обсуждение.
API выглядит следующим образом:
usingTestNG.assertEquals( "Strings are not equal", "expected", "actual" );
usingJUnit.assertEquals( "Strings are not equal", "expected", "actual" );
Или можно использовать дефолтный:
usingDefault.assertEquals( "Strings are not equal", "expected", "actual" );
В таком случае, либа попоробует использовать TestNG. Если его нет в класспасе, то будет использоваться JUnit.
Для интерфейса самих вызов взят JUnit`овский, но это вопрос спорный. Мне он более привычный и это субъективно. Возможно есть смысл добавить оба варианта.
В общем, давайте обсуждать потребность в этой либе, сталкивался ли кто-то с такой проблемой. Может быть это очередной велосипед.
Автор: micherr
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/44674
Ссылки в тексте:
[1] примерный вариант: http://micherr.github.io/eassert/
[2] Источник: http://habrahabr.ru/post/195908/
Нажмите здесь для печати.