gmock, как указать, что никакие другие методы насмешки не должны вызываться? - PullRequest
0 голосов
/ 09 января 2019

У меня есть класс mock, который в настоящее время имеет три метода:

MOCK_METHOD0(method1, std::string());
MOCK_METHOD1(method2, bool(std::string str));
MOCK_METHOD1(method3, bool(std::string str));
...

В одном тестовом примере я ожидаю, что method1 вызывается только один раз в mockClass, и никакие другие методы mocking никогда не должны вызываться с указанием Times (0).

{
    InSequence sequence;
    EXPECT_CALL(*mockClass, method1(_)).WillOnce(doSomething());
    EXPECT_CALL(*mockClass, method2(_)).Times(0); 
    EXPECT_CALL(*mockClass, method3(_)).Times(0); 
}

Однако, если количество ложных методов очень велико в классе имитации, мне пришлось бы написать много .Times (0) для этих имитирующих методов, чтобы я не ожидал, что они будут вызваны.

Я думаю, что если я опущу все эти .Times (0), google test выведет неинтересные вызовы фиктивных функций на консоль, но это скорее предупреждения, чем ошибки, и их трудно поймать. Есть ли простой способ, которым я могу это сделать?

1 Ответ

0 голосов
/ 09 января 2019

Вы можете использовать StrictMock - см. Ссылку для получения дополнительной документации по различным вариантам макета.

...