Вопрос по mockito, java – Вернуть одно и то же значение для каждого экземпляра вызова метода

2

Привет, я не использую PowerMockito, но обычный и пытаюсь издеваться примерно так:

when(any(File.class).canWrite()).thenReturn(Boolean.FALSE)

Но я получаюNullPointerException, В основном, без насмешек над конкретным экземпляром, я хочу смоделировать все экземпляры файлового объекта для возвратаFALSE заcanWrite().

Кто-нибудь может помочь? Я могу издеваться над объектом, но код, который я тестирую, находится внутри статического метода.

Как вы думаетеany(..) делает? Почему ты так думаешь? Sotirios Delimanolis
Я мог бы использовать PowerMock, я полагаю, но мне было интересно, есть ли способ вернуть FALSE для всех вызовов canWrite () в существующей среде? Forrie

Ваш Ответ

1   ответ
1

Это невозможно. С обычным Mockito вам нужен какой-то фиктивный объект в вызове when (), а не какой-либо сопоставитель.

Для вашего примера, когда вы говорите, что любой (File.class)

when(any(File.class).canWrite()).thenReturn(Boolean.FALSE)

Вы должны иметь файловый объект, уже созданный как Mock

File fileMock = mock(File.class);    
when(fileMock.canWrite()).thenReturn(Boolean.FALSE)
И он мог бы также использоватьspy. Fred Porciúncula
Если он может получить экземпляр файла, да. Мое понимание вопроса заключается в том, что он хочет, чтобы каждый Файл, экземпляр которого создается в любом месте, подвергался насмешкам. Даже со шпионом, только с обычным Mockito, вы можете сделать это только в том случае, если сможете получить экземпляр объекта. Jason D

Похожие вопросы