如何使用Google Mock更改指定对象的类型?

时间:2012-03-13 10:25:32

标签: c++ unit-testing googlemock

我想通过测试指定对象的受保护变量来检查方法的行为。因此,我想为这个指定的对象注入一个模拟对象。我的问题是这个对象是在这个方法中创建的,并没有通过参数给出。

bool MappingConfigurationBuilder::buildMappingConfiguration(MappingConfiguration*& mappingConfiguration)
{
  ...
  ConfigurationForColor configurationForColor;
  buildConfigurationForColor(configurationForColor);
  mappingConfiguration = new MappingConfiguration(configurationForHeight, configurationForColor);
  ...
  return true;
}

此方法应创建一个ConfigurationForColor,在受保护的方法buildConfigurationForColor(...)中更改其上的受保护变量,并将该对象分配给MappingConfiguration。我想检查configurationForColor上的受保护变量。

我可以使用Google Mock将configurationForColor的类型更改为模拟对象吗? 或者是他们测试受保护变量的另一种可能性?

1 个答案:

答案 0 :(得分:0)

听起来你需要某种inversion of control

为此,最好创建一个工厂,它返回Mapping Configuration类型对象(模拟或真实对象)。