首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用QTestLib测试类的私有成员函数?

如何使用QTestLib测试类的私有成员函数?
EN

Stack Overflow用户
提问于 2018-02-04 01:26:16
回答 1查看 259关注 0票数 0

我正在使用QTestLib进行单元测试,我问自己如何测试我的类的私有成员函数。我想为内部共享库构建一个测试套件。

在Qt的背景下,我对此有什么策略?

我认为通过公共成员函数测试私有成员函数可能是一个很好的起点:

代码语言:javascript
复制
class A {

   public:
      // add an extra function that is only relevant for testing
      int value() const {
         return theFunctionIWantToTest();
      }

   private:
      int theFunctionIWantToTest() {
         // implementation ..
      }      
}

但问题是,在测试之后,我不需要在A类中使用这个getter。

我对QTestLib不是很有经验,到目前为止,我在Qt的文档中找不到任何与这一点相关的东西。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-02-05 00:37:21

四种可能的解决方案,按个人偏好的相反顺序排列:

  1. 在设置#define private public之前包含类头。不幸的是,它不能移植。(幸运的是,有些人会说)。API声明你的QTestLib测试类是一个

类,将函数的要点放入一个单独的文件中的专用函数中,这个文件清楚地标记为私有

  1. ,并且避免了成员函数的调用。想想Qt itself.
  2. Settle仅在测试公共接口时使用的a_p.h报头。也就是说,要么放弃测试私有函数的目标,要么接受函数应该首先是公开的。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48600019

复制
相关文章

相似问题

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