Разыскивается, но не вызывается во время вызова - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь проверить, вызывается ли метод OCuth2RestTemplate patchForObject с помощью Mockito.verify, но он вообще не работает. У меня есть другой смоделированный метод, который не работает так же хорошо, как getForObject, который неправильно заглушается и возвращает вместо него значение по умолчанию. Вот мой код:

@RunWith(MockitoJUnitRunner.class)
public class ClientPaasTest {
    @Mock
    private OAuth2RestTemplate clientCredentialsRestTemplateMock;

    @InjectMocks
    private ClientPaas clientPaas;

    @Before
    public void setup() {
        Mockito.reset(clientCredentialsRestTemplateMock);
    }
    @Test
    public void testPatchCarteJetonInterac() {
        clientPaas.patchCarteJetonInterac(null, "carte1");   
        Mockito.verify(clientCredentialsRestTemplateMock).patchForObject(null, null, Object.class);
    }
}

И я получаю следующую ошибку:

Wanted but not invoked:
clientCredentialsRestTemplateMock.patchForObject(
    null,
    null,
    class java.lang.Object
);
-> at com.pmtcartes.util.ClientPaasTest.testPatchCarteJetonInterac
(ClientPaasTest.java:91)

However, there were other interactions with this mock:
clientCredentialsRestTemplateMock.patchForObject(
    null,
    null,
    class java.lang.Object
);
-> at
com.pmtcartes.util.ClientPaas.patchCarteJetonInterac(ClientPaas.java:70)

Что выглядит для меня точно так же ... У кого-нибудь есть решение? Я делал это много раз на многих других проектах. Я не уверен, что происходит.

1 Ответ

0 голосов
/ 02 ноября 2018

Я узнал почему. Макет был заглушен OAuth2RestTemplate.getForObject или patchForObject с другой подписью. издевательство:

public <T> T patchForObject(String url, Object request, Class<T> responseType,
        Object... uriVariables) throws RestClientException {

вместо:

public <T> T patchForObject(URI url, Object request, Class<T> responseType) 
        throws RestClientException {
...