...

вторник, 1 октября 2013 г.

Общий API для JUnit и TestNG

Представим себе ситуацию, когда есть написанные тесты на JUnit`е и все работает отлично (ну хотя бы тесты написаны).

Но появляется чудо-идея, что TestNG был бы для этих тестов удобнее. Не будем вдоваться в холливор, какой из фреймворков лучше, круче или удобнее. Но факт в том, что API у них разный.

Конечно заменить поиском assertArrayEquals на assertEquals несложно.

Но менять позицию сообщения для падающего теста уже сложнее, тут нужно править ручками.

Не знаю, насколько актуальна эта проблема, но я с ней сталкивался много раз.



Так появилась шальная мысль — написать простенькую либу, с помощью которой поменять фреймворк можно без особой головной боли.


Я набросал примерный вариант того, как оно может выглядеть и предлагаю это на обсуждение.

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`овский, но это вопрос спорный. Мне он более привычный и это субъективно. Возможно есть смысл добавить оба варианта.


В общем, давайте обсуждать потребность в этой либе, сталкивался ли кто-то с такой проблемой. Может быть это очередной велосипед.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends:



Комментариев нет:

Отправить комментарий