我正在寻找C++编码风格的最佳做法,以确保轻松进行单元测试。问题来自于试图为私有数据成员实现一个模拟类。私人数据成员可以通过几种不同的方法访问。到目前为止,我能找到的所有例子都展示了如何编写一个模拟类,而不是如何最好地编写将使用真实和模拟对象的代码。嘲讽私人会员资料
在下面的例子中,我不知道如何从类型MyOtherClass获取mCustom到我的模拟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) {}
};
这些都是可行的解决方案。但是,如果你的数字是4,那么你会被任何开发者烧掉 - 这可能就是为什么它在这个列表中的最后一个。)就我个人而言,我是方法1的粉丝,因为它是最不具侵略性的。 – Matt
在我的情况下,“MyOtherClass”与设备驱动程序对话,所以我需要将其从循环中取出来进行测试。所以选项1不是一个选项。其他人看起来很有趣。 – Jim
@Matt:选项4实际上已被我和其他开发商用于商业项目中。只要采用务实的解决方案,就不会受到危害。 –