PowerMockito.when(mockedURL.openConnection()).thenReturn(mockedConnection);
Это определяет, что при вызове метода openConnection()
для объекта mockedURL
вместо него возвращается значение mockedConnection
(а не реальный код). Этот синтаксис / подход также определен / используется в библиотеке "Mockito".
PowerMockito.whenNew(URL.class).withArguments(Mockito.anyString())
Это будет использоваться при создании объекта URL
со строкой в качестве аргумента. , Использование PowerMockito.whenNew()
с аргументом class
позволяет использовать withAnyArguments()
для насмешки над любым конструктором этого класса, а не только с указанным c.
PowerMockito.whenNew(URL.class.getConstructor(new Class<?>[]{String.class}))
This используется для выбора спецификатора c. В данном случае это аргумент String
. Поэтому, когда вы пишете new URL("some string")
, используется этот макет.
new Class<?>[]{String.class}
Это просто массив с объявлением значений, как и любой другой. Это похоже на запись
new int[] {4, 6, 10}
Только то, что тип - Class<?>
, а значения - один String.class
объект.