谷歌嘲笑错误的期望

时间:2017-01-19 16:34:04

标签: c++ unit-testing c++11 googletest gmock

今天我有一个谷歌模拟警告关于一个无趣的模拟函数调用,问题是它警告一个没有嘲笑的方法。

为您提供一些背景信息:

 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。

你知道为什么会出现这个错误吗?我该如何解决呢?

提前致谢。

0 个答案:

没有答案