Как издеваться над переменной экземпляра с помощью Mockito в java? - PullRequest
0 голосов
/ 12 июля 2020

Я новичок в модульном тестировании и использовании mockito

У меня есть класс

public class SystemTenancyConfig {
    private String systemTenancy;
}

Я использовал это в другом классе, где получаю значение:


@Inject
SystemTenancyConfig systemTenancyConfig;
String val = systemTenancyConfig.getsystemTenancy();

Как имитировать systemTenancyConfig.getsystemTenancy (), чтобы она была установлена ​​в строку "Test"? UpdatE:

    @Mock
    private SystemTenancyConfig systemTenancyConfig;
       when(systemTenancyConfig.getSystemTenancy()).thenReturn("test");

дает мне NPE

1 Ответ

1 голос
/ 12 июля 2020

условие, когда getsystemTenancy запускает ваш макет

when(systemTenancy.getsystemTenancy()).thenReturn(what you want it return);
    systemTenancy.getsystemTenancy()

также @Mock поверх объекта, который вы хотите имитировать для всего объекта

пример

@Inject
private SystemTenancyConfig systemTenancyConfig;

@Test
function void testingSomething(){
   when(systemTenancyConfig.getSystemTenancy()).thenReturn("test"); // condition to trigger the mock and return test
   String val = systemTenancyConfig.getsystemTenancy();
}
...