我模拟了返回 istream&
的虚拟方法。我想在测试用例中使用它。如何返回一些值?
问题是 istream
是不可复制的。
我尝试这样的事情:
TEST(x, y)
{
MockClass mock;
std::istringstream str("Some text");
EXPECT_CALL(mock, m(_)).WillOnce(Return(str)); // m method returns std::istream&
sut.callMethod();
}
最佳答案
您应该使用 ReturnRef() 而不是 Return()。引用 gmock 备忘单:
https://github.com/google/googletest/blob/master/docs/gmock_cheat_sheet.md#returning-a-value
关于c++ - 如何模拟方法返回 istream&?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36308015/