我正在寻找 C++ 编码风格的最佳实践,以确保易于单元测试。问题来自尝试为私有数据成员实现模拟类。私有数据成员在类中的几个不同方法中被访问。到目前为止,我能找到的所有示例都展示了如何编写模拟类,但没有展示如何最好地编写同时使用真实对象和模拟对象的代码。
在下面的示例中,我不确定如何将 mCustom 从类型 MyOtherClass 获取到我的模拟 MockMyOtherClass。我怀疑我的方法是错误的,因此是问题所在。
class MyClass {
MyOtherClass mCustom;
};
[编辑]
我使用了编译器指令并添加了一个新的构造函数。
#ifdef UNIT_TESTING
#include "mock.h"
#else
#include "myotherclass.h"
#endif
class MyClass {
MyOtherClass mCustom;
public:
MyClass(MyOtherClass pClass) : mCustom(pClass) {}
};