Return gmock 模拟方法参数
Return mock method argument with gmock
如何 return 模拟方法参数作为 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)));
}
我发现了,使用Invoke
操作:
ON_CALL(obj, foo(_))
.WillByDefault(
Invoke([&](const std::string &s) -> int { return results.at(s); });
如何 return 模拟方法参数作为 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)));
}
我发现了,使用Invoke
操作:
ON_CALL(obj, foo(_))
.WillByDefault(
Invoke([&](const std::string &s) -> int { return results.at(s); });