Come cambiare il tipo di un oggetto assegnato con Google Mock?
-
13-12-2019 - |
Domanda
Voglio controllare il comportamento di un metodo testando una variabile protetta di un oggetto assegnato.Pertanto, voglio iniettare un oggetto finto per questo oggetto assegnato.Il mio problema è che questo oggetto viene creato durante questo metodo e non viene fornito attraverso un parametro.
bool MappingConfigurationBuilder::buildMappingConfiguration(MappingConfiguration*& mappingConfiguration)
{
...
ConfigurationForColor configurationForColor;
buildConfigurationForColor(configurationForColor);
mappingConfiguration = new MappingConfiguration(configurationForHeight, configurationForColor);
...
return true;
}
.
Questo metodo dovrebbe creare un ConfigurationForColor, modificare una variabile protetta su di esso nel metodo protetto BuildConfigurationforColor (...) e assegnare l'oggetto a una configurazione della mappatura.Voglio controllare la variabile protetta su ConfigurationForColor.
Posso usare Google Mock per cambiare il tipo di ConfigurationForColore a un oggetto finto? O è la loro altra possibilità di testare la variabile protetta?
Soluzione
Sembra che tu abbia bisogno di una specie di inversione del controllo .
Per questo, sarebbe bello creare una fabbrica, che restituisce oggetti di tipo di mappingConfigurazione (in merito o oggetti reali).