Этот comparison показывает, что JMockit имеет ряд преимуществ перед другими фреймворками.
Есть ли какие-то преимущества, которые есть у одного из других (JMock, EasyMock, Mockito, Unitils, PowerMock + Mockito/EasyMock) над JMockit?
Этот comparison показывает, что JMockit имеет ряд преимуществ перед другими фреймворками.
Есть ли какие-то преимущества, которые есть у одного из других (JMock, EasyMock, Mockito, Unitils, PowerMock + Mockito/EasyMock) над JMockit?
Три недостатка:
Вы всегда можете обсудить, хорошо ли быть в состоянии высмеять окончательный класс, например JMockit. Если это устаревший код, рефакторинг обычно является лучшей альтернативой.
С помощью IDE, таких как Eclipse, я нахожусь с помощью инструментальной поддержки для создания заглушек внутри тестового класса чаще, чем издевательства (JMockit, Mockito и т.д.) в последнее время. Преимущество такого подхода состоит в том, что он очень прост. Это особенно приятно, когда у вас есть команда со многими разработчиками, и некоторые из них не любят тестирование и мало мотивируют изучать насмешливую структуру. Кроме того, реализации заглушек не имеют ограничений на рамки!
Если вы открыты для создания в качестве альтернативы, вы должны проверить блог Роберта К. Мартина о насмешливости и опускании здесь и здесь
Иначе это выглядит очень хорошо! Хотя у меня есть только опыт работы с JMock, EasyMock и базовые знания с JMockit.
Недавно я принял проект, который использует JMockit, и я думаю, что качество кода, безусловно, страдает из-за способности библиотеки издеваться над статическими и частными методами.
Тесты очень хрупкие, потому что детали реализации, содержащиеся в частных методах, проверяются (поэтому, если я изменю способ выполнения класса, он может нарушить тесты, даже если то, что класс не затронул).
Код также завален вызовами статических методов - если разработчики не имели возможности издеваться над ними, я думаю, что они приложили бы больше усилий, чтобы немного улучшить ситуацию.