首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >规则5与gmock测试接口?

规则5与gmock测试接口?
EN

Stack Overflow用户
提问于 2022-08-16 18:59:46
回答 1查看 30关注 0票数 0

来自“嘲笑傻瓜”页面:https://google.github.io/googletest/gmock_for_dummies.html#a-case-for-mock-turtles

我将定义这样一个可测试的接口:

代码语言:javascript
复制
class Turtle {
  ...
  virtual ~Turtle() {}
  ...

我的林特对我大喊大叫,说我应该遵守第三条规则。所以我补充道:

代码语言:javascript
复制
  Turtle() = default;
  Turtle(const Turtle& x) = default;
  Turtle& operator=(const Turtle& x) = default;

然后它仍然抱怨我需要移动构造函数和赋值操作符,所以我不得不添加:

代码语言:javascript
复制
  Turtle(Turtle&& x) = default;
  Turtle& operator=(Turtle&& x) = default;

好的,所以我知道这是第5条规则。

然后,对于我从这个接口继承的每个类,我必须做同样的事情,即一个析构函数加上5个默认的构造函数/赋值操作符。

我的问题是:

  1. 我做得对吗?
  2. 真的有必要放这么多样板吗?
EN

回答 1

Stack Overflow用户

发布于 2022-08-17 19:31:52

我使用的是clangtidy https://releases.llvm.org/13.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines-special-member-functions.html

如果我将析构函数定义为default

代码语言:javascript
复制
virtual ~Turtle() = default;

然后,我至少可以使用AllowSoleDefaultDtor选项定制linter行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73379044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档