我正在使用QTestLib进行单元测试,我问自己如何测试我的类的私有成员函数。我想为内部共享库构建一个测试套件。
在Qt的背景下,我对此有什么策略?
我认为通过公共成员函数测试私有成员函数可能是一个很好的起点:
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的文档中找不到任何与这一点相关的东西。
谢谢。
发布于 2018-02-05 00:37:21
四种可能的解决方案,按个人偏好的相反顺序排列:
#define private public之前包含类头。不幸的是,它不能移植。(幸运的是,有些人会说)。API声明你的QTestLib测试类是一个类,将函数的要点放入一个单独的文件中的专用函数中,这个文件清楚地标记为私有
a_p.h报头。也就是说,要么放弃测试私有函数的目标,要么接受函数应该首先是公开的。https://stackoverflow.com/questions/48600019
复制相似问题