2

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

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

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

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

4

1 回答 1

0

听起来您需要某种控制反转

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

于 2012-03-13T10:44:00.560 回答