Какие рамки UnitTest выучить для Java сейчас? [закрыто]

12
задан Michael Mao 5 August 2010 в 12:02
поделиться

12 ответов

Я создатель TestNG и автор книги «Тестирование следующего поколения», так что вот несколько (очевидно предвзятых) мыслей.

Для функционального (или сквозного / интеграционного / системного, какой бы термин вы ни выбрали) TestNG предлагает несколько функций, которых нет в JUnit и которые пользователи сочли очень полезными:

  • Группы. После того, как вы скомпилировали свои тесты, вы можете просто попросить TestNG запустить все «интерфейсные» тесты или «быстрые», «медленные», «базы данных» и т. Д.

  • Поддержка многопоточного тестирования. Это имеет два разных значения:

1) Вы можете указать TestNG запускать все ваши тесты одновременно в пулах потоков, которые вы определяете (изменение одной строки в XML-файле). Это очень гибко настраивается, так что тесты, которые не являются многопоточными, по-прежнему могут выполняться в однопоточном режиме.

2) Вы можете указать TestNG вызвать ваши тестовые методы n раз из p потоков. Это дает вам хорошее представление о том, насколько потокобезопасен тестируемый код.

  • Тестовые зависимости и детерминированный порядок. Это очень полезно для интеграционного тестирования, где очень часто можно увидеть методы тестирования, которым для успешной работы требуются предшествующие методы тестирования, прежде чем они могут быть запущены. TestNG очень популярен в сообществе Selenium именно по этой причине («не беспокойтесь о тестировании этой страницы моего веб-сайта, если тест входа в систему не прошел»).

Еще одно непосредственное преимущество тестовых зависимостей заключается в том, что TestNG может сказать вам «1 метод не удался, 99 методов пропущены», что является гораздо более точным результатом, чем «100 методов не удалось».

TestNG имеет много-много дополнительных функций, и я рад ответить на вопросы здесь или в нашем списке рассылки ( http://groups.google.com/group/testng-users ).

31
ответ дан 2 December 2019 в 03:09
поделиться

Я бы изучил TestNG с Unitils . Всегда удовлетворял все мои потребности. Добавьте XMLUnit и DBUnit и надолго у вас должно устояться.

6
ответ дан 2 December 2019 в 03:09
поделиться

Честно говоря, JUnit намного популярнее TestNG, по крайней мере, здесь, где я работаю и живу. Я знаю, что это может быть странный аргумент, но на вашем месте я бы просмотрел несколько объявлений о вакансиях и посмотрел, какая инфраструктура подходит для отрасли в вашем регионе / стране (например, из-за этого я выбираю JUnit, я имею в виду Я уверен, что смогу изучить TestNG, возможно, он окажется лучше, но какая польза от этого для меня, если все работодатели потребуют знания JUnit?).

3
ответ дан 2 December 2019 в 03:09
поделиться

Хотя это может показаться мелким критерием, при прочих равных, похоже, что тенденции в сфере занятости в значительной степени благоприятствуют JUnit.

http://www.indeed.com/jobtrends?q=TestNG%2C+JUnit&l=

2
ответ дан 2 December 2019 в 03:09
поделиться

Я использовал оба и обнаружил, что для модульного тестирования очень хорошо работает только jUnit, но с точки зрения тестирования системы я бы порекомендовал TestNG. TestNG предлагает несколько дополнительных функций (например, параметрическое тестирование) и очень гибок. Например, в jUnit сбой одного теста в наборе обычно означает, что вам нужно повторно запустить весь набор, но в TestNG вы можете просто перезапустить тест, который не прошел. Вот действительно хорошая статья, описывающая и то, и другое (хотя она немного смещена в сторону TestNG)

http://www.ibm.com/developerworks/java/library/j-cq08296/index.html

2
ответ дан 2 December 2019 в 03:09
поделиться

Оба выполняют свою работу одинаково хорошо, поэтому нет правильного или неправильного. Вы можете использовать и то, и другое в сочетании с многочисленными фреймворками для поддержки вашего развития.

Если вам нужно работать на клиента, вы можете узнать того, которым вы, как ожидается, будете пользоваться. Если нет, лучше всего попробовать их оба и выяснить, что лучше всего подходит для вас.

2
ответ дан 2 December 2019 в 03:09
поделиться

JUnit очень хорошо поддерживается во многих IDE, включая Eclipse, а JUnit 4 с аннотациями - довольно приятно работать.

Если у вас нет особых потребностей, обратитесь за помощью к инструментам, например jUnit.

2
ответ дан 2 December 2019 в 03:09
поделиться

Я бы выбрал JUnit.

-1
ответ дан 2 December 2019 в 03:09
поделиться

TestNG с Unitils - это действительно здорово. Он покрывает почти все требования. Unitils поддерживает множество утилит утверждения, Spring, Hibernate, mocking-фреймворки, dbutils и т.д.

1
ответ дан 2 December 2019 в 03:09
поделиться

Джунит - лучшее место для начала. Junit 4.x имеет множество разнообразных функций, таких как аннотации и т. Д., А также получает хорошую поддержку со стороны популярных фреймворков, таких как Spring.

0
ответ дан 2 December 2019 в 03:09
поделиться

Для меня это просто вопрос вкуса. Я лично использую jUnit ежедневно более 5 лет, и я очень доволен им, особенно последней версией и ее функцией @Rule, которая не позволяет моей команде писать один и тот же код снова и снова. Он хорошо интегрируется со всеми инструментами, которые я использую ежедневно: IDE, сборка, непрерывная интеграция ...

1
ответ дан 2 December 2019 в 03:09
поделиться

Junit является известным и лучшим инструментом модульного тестирования, я думаю, вы и я оба знаем, что Junit настолько важен, что Java-разработчик меняет свой шаблон кодирования в качестве вклада в junit. Вы можете немного изучить Junit как базовый модуль технологии тестирования, а также изучить testng как вторую технологию модульного тестирования.

Следующая ссылка может быть вам полезна! http://www.javarmi.com/2010/08/junit-4-tutorial-and-example-get-starting/

1
ответ дан 2 December 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: