не могу установить другой EXPECT_CALL для единственной функции одного фиктивного объекта - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть функция сетевого API send, которую необходимо смоделировать с помощью следующей подписи.

virtual void send(const RestRequest &req, RestResponse &resp) = 0;

Этот вызов возвращает ответ в выходном параметре RestResponse. В моем тестовом коде ожидается, что этот вызов будет вызываться 2 раза, но, очевидно, с другим входным значением req и другим выходным значением в качестве отклика в параметре resp.

Я установил свои ожидания следующим образом:

RestRequest ReqObj1= createRequest();
RestRequest ReqObj2= createRequest();
RestResponse RespObj1 = createResponse();
RestResponse RespObj2 = createResponse();

{
        InSequence seq;
        EXPECT_CALL(*mockedConn, send(ReqObj1,_))
        .WillOnce(SetArgReferee<1>(RespObj1));
        EXPECT_CALL(*mockedConn, send(ReqObj2,_))
        .WillOnce(SetArgReferee<1>(RespObj2));
}

Первый send отлично высмеивается, и я получаю outparam, установленный как RespObj1, но второй вызов не поддразнивается. Похоже, gmock не может различить ч / б ожидания, о которых говорилось, и одно затмевает другое.

Как мне сказать gmock, чтобы они раздельно обрабатывали два ожидания?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...