Je veux utiliser un Mock avec un NiceMock. Le Mock a un constructeur qui prend un autre Mock comme argument. Ce petit exemple de code que j'ai qui fonctionneNiceMock un Mock qui a un autre Mock comme paramètre constructeur
class ClassA
{
ClassA() { }
};
template <class T>
class ClassB>
{
ClassB(ClassA & a) { } // constructor, no default constructor for this class
};
class ClassC
{
ClassC() { }
};
class MyTest : public Test
{
MockClassA a;
MockClassB<ClassC> * b = NULL;
SetUp()
{
b = new MockClassB<ClassC>(a);
}
...
};
Cela fonctionne très bien, mais si je tente d'utiliser MockClassB avec un NiceMock comme celui-ci
MockClassA a;
NiceMock<MockClassB<ClassC>> * b = NULL;
SetUp()
{
b = new NiceMock<MockClassB<ClassC>>(a);
}
je reçois une erreur de compilation en disant cannot convert argument 1 from 'const MockClassA' to 'ClassA &'
. Notez que l'erreur est sur ClassA, qui est le type de l'argument du constructeur pour ClassB. Il ne contribue pas à envelopper ClassA dans un NiceMock comme NiceMock<MockClassA> a
, je viens d'obtenir une erreur similaire: cannot convert argument 1 from 'const testing::NiceMock<MockClassA>' to 'ClassA &'
J'ai d'autres classes que je suis basé sur un modèle en utilisant avec NiceMock qui travaillent, mais ils n'ont des paramètres du constructeur .
Des idées?
Le pointeur travaillé! Merci! – Martin