![]() |
1
20
假设您是指公共可访问类的受保护方法: 在测试代码中,定义被测试类的派生类(直接或从其派生类之一)。为受保护成员添加访问器,或在派生类中执行测试。“受保护的“访问控制”在C++中并不十分可怕:它不需要与基类的合作来“破解”它。所以最好不要在基类中引入任何“测试代码”,甚至是友元声明:
|
![]() |
2
6
还可以使用using关键字公开公共块(使用。
见: http://en.cppreference.com/w/cpp/language/using_declaration |
![]() |
3
2
在MyClass中声明友元类MyClass_UnitTest;。然后,您可以在单元测试程序的其他地方定义MyClass_UnitTest,该程序可以完全访问MyClass内部,但不必在发布应用程序中提供实现。 见 CppUnit 记录如何完成的一个很好的例子。 |
![]() |
4
2
我用 CxxTest 并让cxtest从包含受保护成员函数的类派生。如果您还在搜索您最喜欢的C++单元测试框架,请看 this article . |
![]() |
5
0
考虑一个公共的,可能是静态的“单元测试”函数。 丑陋,但比我能想到的使用宏或朋友等替代品更好。 |
![]() |
6
0
在C++中使用一个简单的定义来解决问题。只需将“ClassUnderest”的内容包装如下:
|
|
user1682076 · 声纳错误-使此成员“受保护” 7 年前 |
|
Scratch Cat · 使用继承的受保护成员时出现问题(C++) 7 年前 |
![]() |
gwizardry · 私有静态列表是限制类实例集的适当方法吗 8 年前 |
![]() |
Kiel · 铁路超高访问背后的变量代码 8 年前 |
![]() |
Abu Muhammad · 为什么此受保护的成员在子类[重复]中不可见 10 年前 |
![]() |
user1868607 · 从超类调用受Ruby保护的可见性 10 年前 |
![]() |
PeakGen · 访问子类中的“受保护”数据时出现“标识符未定义”错误 12 年前 |