今天我有一个谷歌模拟警告关于一个无趣的模拟函数调用,问题是它警告一个没有嘲笑的方法。
为您提供一些背景信息:
protected:
virtual boost::future<bool> write(std::string rawMessage) = 0;
virtual bool readHandler(const std::string& message) = 0;
public:
void read() {
asio::spawn(_strand, [this](asio::yield_context yield) {
_isReading = true;
while (!_stopRequested) {
asio::deadline_timer yielder(_strand.get_io_service());
auto future = _streamController->read();
while (!future.is_ready()) {
this->timedYield(yielder, yield, boost::posix_time::milliseconds(1));
}
this->readHandler(future.get().data());
}
_isReading = false;
});
}
write和readHandler是两个被模拟的方法,read是gmock抱怨的方法。
我的模拟是:
class Client : public Protocol::Client<Adapter> {
public:
Client(asio::io_service& ioService, std::unique_ptr<Adapter> adapter,
std::shared_ptr<Infra::Network::Mock::StreamController> streamController)
: Protocol::Client<Adapter>(ioService, std::move(adapter), std::move(streamController)) {}
MOCK_METHOD1(write, boost::future<bool>(std::string rawMessage));
MOCK_METHOD1(readHandler, bool(const std::string& message));
};
确切的信息是:
GMOCK警告:无趣的模拟函数调用 - 返回默认值 值。 函数调用:read() 返回:16字节对象&lt; 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00&gt;注意:除非这样,否则您可以安全地忽略上述警告 打电话不应该发生。不要盲目添加一个 EXPECT_CALL()如果你不想强制执行这个电话。
我使用的是gtest版本1.8.0。
你知道为什么会出现这个错误吗?我该如何解决呢?
提前致谢。