Обновление Mockito вызывает проблемы с нулевым указателем - PullRequest
2 голосов
/ 28 марта 2012

Мы обновили mockito-all-1.8.5.jar до mockito-all-1.9.0.jar и теперь видим нулевые указатели при использовании аннотаций для насмешиваемых классов.Вот пример:

  @Mock
  private static IAccountManager accountManager;
  @Mock
  private static IBusinessUnitManager businessUnitManager;
  private static Gson parser;</p>

<p>@InjectMocks
  private static DownloadController downloadController;</p>

<p>@BeforeClass
  public static void setUpBeforeClass() throws Exception {
    parser = new Gson();</p>

<pre><code>downloadController = new DownloadController(accountManager,
    businessUnitManager, parser);
</code>

}

@ До того, как public void setUp () выдает исключение {MockitoAnnotations.initMocks (this);Mockito.reset (accountManager, businessUnitManager);}

Как только на accountManager есть ссылка в контроллере загрузки, он выдает npe.Это работало в 1.8.5.

Ответы [ 2 ]

4 голосов
/ 29 марта 2012

Причина, по которой внедренные макеты не сработали, заключается в том, что они являются статическими полями.Статические поля обычно зарезервированы для полей, которые остаются постоянными и не меняются от теста к тесту, а иногда могут быть дорогостоящими для создания экземпляров.Это наоборот для полей экземпляра, где для каждого метода теста создается новый экземпляр класса теста (таким образом, его поля экземпляра «сбрасываются»).Казалось бы, Mockito придерживается этой философии и не пытается создавать экземпляры статических полей.

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

4 голосов
/ 29 марта 2012

Вы можете посмотреть на http://code.google.com/p/mockito/issues/detail?id=327 в реестре проблем Mockito.Если это проблема, с которой вы столкнулись, то она уже исправлена ​​и будет в версии 1.9.1 Mockito.Если вы считаете, что ваша проблема отличается от этой, перейдите на http://code.google.com/p/mockito/issues и поднимите ее, чтобы ее можно было исправить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...