Создать класс IpAddressProvider
и NetworkInterfaceProvider
.
Пусть NetworkInterfaceProvider
имеет один метод getNetworkInterfaces()
, который возвращает List<NetworkInterfaces>
из NetworkInterface
.
Пусть NetworkInterfaceProvider
будет зависимостью IpAddressProvider
, которая передается через конструктор и сохраняется в закрытом поле ipAddressProvider
.
Пусть IpAddressProvider
имеет открытый метод getIPAddress()
, в котором он вызывает ipAddressProvider.getNetworkInterfaces()
и выполняет обработку, которую вы выполняете в опубликованном вами статическом методе.
Теперь вы можете протестировать метод getIPAddress
из IpAddressProvider
, предоставив фальшивый экземпляр NetworkInterfaceProvider
, где вы предоставляете фиктивный список NetworkInterfaces, которые вы контролируете.
mockedIpAddressProvider = Mockito.mock(NetworkInterfaceProvider.class);
ipAddressProviderWhichYouWantToTest = IpAddressProvider(mockedIpAddressProvider);
Например:
В своем тесте вы жестко закодировали свой поддельный экземпляр NetworkInterfaceProvider
, чтобы получить пустой список.
Mockito.when(mockedIpAddressProvider.getNetworkInterfaces()).thenReturn(emptyList)
Тогда вы ожидаете, что getIPAddress()
метод вернет пустую строку
assertEquals("",ipAddressProviderWhichYouWantToTest.getIPAddress());