保存一个 char* 参数引入一个字符串
Save a char* parameter intro a string
请帮我解决这个问题。我是 gtest 的初学者。
我有一个模拟函数
DoSomething(const char* par0, const char* par2)
我想将它的第二个参数保存到
std::string `savedPar_`;
EXPECT_CALL(mockd_, DoSomething(_, _,))
.WillOnce(DoAll(SaveArg<1>(savedPar_), (Return(Ok))));
并收到此错误:
error: no match for ‘operator*’ (operand type is ‘const std::__cxx11::basic_string<char>’)
*pointer = ::testing::get<k>(args);
比你提前那么多!
根据doc
SaveArg<N>(pointer)
Save the N-th (0-based) argument to *pointer
.
应该是:
std::string savedPar_;
EXPECT_CALL(mockd_, DoSomething(_, _,))
.WillOnce(DoAll(SaveArg<1>(&savedPar_), (Return(Ok))));
// ^
请帮我解决这个问题。我是 gtest 的初学者。 我有一个模拟函数
DoSomething(const char* par0, const char* par2)
我想将它的第二个参数保存到
std::string `savedPar_`;
EXPECT_CALL(mockd_, DoSomething(_, _,))
.WillOnce(DoAll(SaveArg<1>(savedPar_), (Return(Ok))));
并收到此错误:
error: no match for ‘operator*’ (operand type is ‘const std::__cxx11::basic_string<char>’)
*pointer = ::testing::get<k>(args);
比你提前那么多!
根据doc
SaveArg<N>(pointer)
Save the N-th (0-based) argument to*pointer
.
应该是:
std::string savedPar_;
EXPECT_CALL(mockd_, DoSomething(_, _,))
.WillOnce(DoAll(SaveArg<1>(&savedPar_), (Return(Ok))));
// ^