Google Mock:在目标 class 的构造函数中实例化的 Mock 私有变量成员
Google Mock: Mock private variable member that is instantiated in target class's constructor
我的问题与 相同,但针对的是 Google Mock 框架。简而言之:
class Target {
private:
Person person = new Person();
public:
void testMethod() {
person.someMethod();
}
};
如何在为 Target
class 进行单元测试时模拟 person
实例?
这里没有答案:只是不要这样做。
您的问题是在此处调用 new
。事情是:这使得测试变得困难,并且它还在 Target
和 Person
class.
之间建立了非常紧密的耦合
默认替代方案是:为 Target
class 提供一个 factory 为您创建 Person
对象。
通过寻求该解决方案,您
- 避免需要模拟对
new
的调用
- 你最终得到了更好的设计!
并且除非我误读了 documentation,否则 C++ 模拟不可能对 new
进行模拟调用。
我的问题与
class Target {
private:
Person person = new Person();
public:
void testMethod() {
person.someMethod();
}
};
如何在为 Target
class 进行单元测试时模拟 person
实例?
这里没有答案:只是不要这样做。
您的问题是在此处调用 new
。事情是:这使得测试变得困难,并且它还在 Target
和 Person
class.
默认替代方案是:为 Target
class 提供一个 factory 为您创建 Person
对象。
通过寻求该解决方案,您
- 避免需要模拟对
new
的调用
- 你最终得到了更好的设计!
并且除非我误读了 documentation,否则 C++ 模拟不可能对 new
进行模拟调用。