我的问题和Mockito: Mock private field initialization一样但对于 Google Mock 框架。简而言之:
class Target {
private:
Person person = new Person();
public:
void testMethod() {
person.someMethod();
}
};
如何在对 Target
类进行单元测试时模拟 person
实例?
最佳答案
这里没有答案:只是不要这样做。
您的问题是此处对 new
的调用。事实是:这使得测试变得困难,而且它还在 Target
和 Person
类之间创建了非常紧密的耦合。
默认的替代方案是:为 Target
类提供一个工厂,为您创建 Person
对象。
通过寻求该解决方案,您
- 避免需要模拟对
new
的调用 - 您最终会得到更好的设计!
除非我误读了 documentation ,无论如何,通过 C++ 模拟不可能模拟对 new
的调用。
关于c++ - 谷歌模拟 : Mock private variable member that is instantiated in target class's constructor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44916123/