Вернуть аргумент метода фиктивного метода с помощью gmock

Как я могу вернуть аргумент фиктивного метода в качестве аргумента действия ON_CALL Return()?

Макетный метод:

MOCK_METHOD1(foo, int(const std::string&))

Тестовое задание:

TEST_F(Test, t) {

    //I'm using parametrized tests, this is only for simplicity
    std::map<std::string, int> results = {{"Apple", 1}};

    ON_CALL(obj, foo(_))
        .WillByDefault(
            Return(results.at(argument_from_foo_method)));
}

person Sajmplus    schedule 11.01.2018    source источник


Ответы (1)


Я узнаю, используйте действие Invoke:

ON_CALL(obj, foo(_))
        .WillByDefault(
            Invoke([&](const std::string &s) -> int { return results.at(s); });
person Sajmplus    schedule 12.01.2018