Использовать гугл макет EXPECT_THAT в EXPECT_CALL?

Я использую гугл макет. В документе говорится, что мы можем использовать EXPECT_THAT в EXPECT_CALL или ON_CALL, но подобный код, похоже, не компилируется:

EXPECT_CALL(obj, method(_, _)).Times(1).WillOnce(EXPECT_THAT(true, Eq(1)));

Я знаю, что EXPECT_THAT — это макрос, поэтому он расширяется до некоторых операторов, которые там не должны появляться. Так что же означает «использовать EXPECT_THAT в EXPECT_CALL»? Как это сделать?

Спасибо

2

Решение

Вы неправильно поняли документация для спичек:

Сопоставитель соответствует одному аргументу. Вы можете использовать его внутри ON_CALL () или EXPECT_CALL (), или использовать его для прямой проверки значения

Затем документы приводятся в качестве примера как Вы можете использовать совпадение для проверки значения:

EXPECT_THAT(value, matcher)Утверждает, что value Матчи matcher,

Это не значит, что EXPECT_THAT это само по себе совпадение. Таким образом, вы не можете делать то, что вы пытаетесь, но только что-то вроде:

EXPECT_THAT(true, testing::Eq(1));

или же

EXPECT_CALL(obj, method(testing::_, testing::Eq(1))).Times(1);
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]