Подтвердить что ты не робот

Есть ли у JMockit какие-либо недостатки?

Этот comparison показывает, что JMockit имеет ряд преимуществ перед другими фреймворками.

Есть ли какие-то преимущества, которые есть у одного из других (JMock, EasyMock, Mockito, Unitils, PowerMock + Mockito/EasyMock) над JMockit?

4b9b3361

Ответ 1

Три недостатка:

  • Вы должны использовать Java-агент для работы с инструментами байт-кода.
  • Вы не можете использовать подписанный файл junit.jar, поставляемый с Eclipse.
  • Вам нужно изучить макет API. (В отличие от объекта-заглушки)

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

С помощью IDE, таких как Eclipse, я нахожусь с помощью инструментальной поддержки для создания заглушек внутри тестового класса чаще, чем издевательства (JMockit, Mockito и т.д.) в последнее время. Преимущество такого подхода состоит в том, что он очень прост. Это особенно приятно, когда у вас есть команда со многими разработчиками, и некоторые из них не любят тестирование и мало мотивируют изучать насмешливую структуру. Кроме того, реализации заглушек не имеют ограничений на рамки!

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

Иначе это выглядит очень хорошо! Хотя у меня есть только опыт работы с JMock, EasyMock и базовые знания с JMockit.

Ответ 2

Недавно я принял проект, который использует JMockit, и я думаю, что качество кода, безусловно, страдает из-за способности библиотеки издеваться над статическими и частными методами.

Тесты очень хрупкие, потому что детали реализации, содержащиеся в частных методах, проверяются (поэтому, если я изменю способ выполнения класса, он может нарушить тесты, даже если то, что класс не затронул).

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