ho una classe che prende un valore booleano come parametro di riferimento e restituisce un numero intero:Google finto ByRef metodo
class Foo
{
public:
Bar my_bar;
virtual int myMethod(bool &my_boolean) = 0;
}
/*...*/
int Foo::myMethod(bool &my_boolean){
if (my_bar == NULL){
my_boolean = false;
return -1;
}
else{
my_boolean = true;
return 0;
}
}
e ho creato un mock per questa classe:
class MockFoo : public Foo
{
MOCK_METHOD1(myMethod,int(bool &my_boolean));
}
Sono avendo problemi su come impostare le aspettative per questo tipo di funzione, perché ho bisogno di impostare il valore di ritorno e il parametro di riferimento su valori specifici per creare correttamente i miei test di unità. Come posso gestire questo tipo di funzione con gmock? Ho provato a seguire quello che pensavo w come la soluzione alla documentazione:
using ::testing::SetArgPointee;
class MockMutator : public Mutator {
public:
MOCK_METHOD2(Mutate, void(bool mutate, int* value));
...
};
...
MockMutator mutator;
EXPECT_CALL(mutator, Mutate(true, _))
.WillOnce(SetArgPointee<1>(5));
Ma, o non ho capito l'esempio o non era applicabile per questo case.Has chiunque occupato whith questo tipo di situazione prima?
Grazie in anticipo.
Quindi non capisco quale è la tua domanda. Puoi elaborare i tuoi problemi? Il codice sembra essere corretto per me. O vuoi sapere come impostare le aspettative per il parametro di riferimento in modo analogo? 'ByRef()' sarebbe perfettamente OK per questo. –
+1 difficile da ottenere dagli esempi del libro di cucina. –