Я хочу протестировать некоторый класс. У этого класса есть логическое поле с @ Resource.Я не могу насмехаться над этим полем. Поэтому тест дал сбой с некоторой ошибкой. Если кто-нибудь может сказать мне, как я могу проверить этот класс.
Это мой класс Java
public class RefreshHandlerImpl implements RefreshHandler
{
@Resource(name = "readOnlyMode")
private Boolean readOnlyMode;
@Override
public ContactBedRefreshResult refreshContactsAndBeds(final Unit unit, final boolean hasWritableTransaction)
throws RequiresWritableTransactionException
{
if (!isReadOnlyMode())
{
//some code here
}
}
private boolean isReadOnlyMode()
{
return readOnlyMode;
}
}
Я пытаюсь смоделировать поле "readOnlyMode". Но оно дает ошибку.
org.mockito.exceptions.base.MockitoException:
Не может издеваться / шпионить класс java.lang.Boolean
Мокито не может издеваться над шпионом:
- выпускные занятия
- анонимные занятия
- примитивные типы
Это мой тестовый класс
public class RefreshHandlerImplTest
{
@Mock(name = "readOnlyMode")
private Boolean readOnlyMode;
@InjectMocks
private RefreshHandlerImpl refreshHandlerImpl;
@BeforeMethod
public void setUp() throws Exception {
initMocks(this);
}
@Test
public void testRefreshContactsAndBeds_ReturnsZeroContactsWhenCollaboratorsDoes()
throws Exception
{
ContactBedRefreshResult result = refreshHandlerImpl.refreshContactsAndBeds(unit, true);
assertThat(result.getContacts()).isEmpty();
}
}
Могу ли я использовать рефлексию и то, как она используется? Я не могу изменить свой класс Java. Можно изменить только тестовый класс.