EasyMock по сравнению с Mockito: дизайн по сравнению с пригодностью для обслуживания? [закрытый]

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

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

Мои вопросы:

  • При использовании EasyMock в крупномасштабных проектах Вы находите, что Ваши тесты более трудно поддержать?
  • Каковы ограничения Mockito (кроме endo, тестирующего)?
47
задан palacsint 13 June 2013 в 11:32
поделиться

2 ответа

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

Я считаю, что тесты EasyMock действительно время от времени ломаются. EasyMock заставляет вас делать полную запись того, чего вы ожидаете. Это требует определенной дисциплины. Вы действительно должны записывать то, что ожидается, а не то, что сейчас нужно тестируемому методу. Например, если не имеет значения, сколько раз метод вызывается в макете, не бойтесь использовать и StubReturn . Кроме того, если вам не нужен параметр, используйте anyObject () и так далее. В этом может помочь мышление в TDD.

Я считаю, что тесты EasyMock будут чаще давать сбой, а тесты Mockito - нет, когда вы этого захотите. Я предпочитаю, чтобы мои тесты ломались. По крайней мере, я знаю, на что повлияло мое развитие. Это, конечно, моя личная точка зрения.

30
ответ дан 7 November 2019 в 12:50
поделиться

Я не думаю, что вы должны быть слишком обеспокоены этим. И Easymock, и Mockito могут быть настроены на "строгий" или "приятный" режим, разница лишь в том, что по умолчанию Easymock строгий, а Mockito приятный.

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

В начале жизни Mockito совместимость с API была проблемой, но теперь все больше инструментов поддерживают фреймворк. Powermock (личный фаворит) теперь имеет расширение mockito

7
ответ дан 7 November 2019 в 12:50
поделиться
Другие вопросы по тегам:

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