单元测试-如何用私有构造函数C++测试私有成员
unit testing - How to test a private member with private constructor C++
我下面有一些代码:
class base{
private:
base();
int x;
public:
friend class child;
};
class child{
public:
void display(base* b)
{
b->x = 1;
}
};
int main()
{
base* t;
//t = new base;
child c;
c.display(t);
}
我无法分配对象t
。我想测试x
的值。如何测试此代码?
通常只测试类的公共API
因此,如果有必要测试x
的值,那么该值很可能也与其他类相关。您将child
声明为访问x
的好友,这一事实支持了这一事实。
结论:
将x
公开,或者(更好)提供getter和可能的setter方法。
将此代码添加到公共部分的基类:
friend int main();
然后在主函数中,取消对以下行的注释:
t=new base;
但我建议您将基类的构造函数设置为public,而不是private。另外,我真的很好奇你为什么把基类的构造函数设为私有的。
相关文章:
- 数据成员SFINAE的C++17测试:gcc vs clang
- 如何测试成员相等运算符?
- 如何使用成员 c++ 使用 gtest 测试基于私有类的行为
- 在类 gtest/gmock 进行单元测试时模拟成员函数C++
- 在单元测试中,如何在不使用 operator== 的情况下比较两个对象,这可能会错过新成员?
- C++14 对私有成员进行单元测试(取消)分配
- 如何测试是否定义了结构的成员 (c++)
- 测试适用于成员变量的成员函数
- C++ / GoogleTest - 如何测试正在测试的类的成员变量
- 使用C ,使用SFINAE测试静态成员的存在,返回错误的值
- 通过剥离可变宏/模板/函数对来测试成员函数
- 如何在Google测试(gtest)中使用fixture成员值运行参数化测试
- 单元测试 - 设置私人成员以获得所需的对象状态
- C ++静态成员,我该如何测试它
- TDD:确定地测试成员初始化,给定C++中未定义的行为
- C++预处理器测试类成员是否存在
- C++在测试成员变量是否等于NULL时冻结
- 在没有朋友的情况下测试C++中的私有类成员
- 使用variadics测试成员函数是否存在
- 测试成员函数模板