Ben bir referans parametresi olarak bir boolean alır ve bir tamsayı döndüren bir sınıfı:hakkında sahte ByRef yöntem
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;
}
}
Ve bu sınıf için bir taklidini oluşturdu: Ben
class MockFoo : public Foo
{
MOCK_METHOD1(myMethod,int(bool &my_boolean));
}
Bu tür bir fonksiyon için beklentileri nasıl ayarlayacağımıza dair problemlerim var, çünkü ve dönüş değerlerini referans parametrelerimi doğru bir şekilde oluşturmak için belirli değerlere ayarlamam gerekir. Bu tür bir işlevle gmock ile nasıl başa çıkabilirim? Ne düşündüğümü takip ettim. belgeler üzerinde çözüm olarak:
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));
Ama her iki ı örnek anlaşılmış değildi ya da bu case.Has herkes için geçerli değildi önce durum bu tür nereye ele?
Şimdiden teşekkürler.
O zaman sorunun ne olduğunu anlamıyorum. Sorunlarını çözebilir misin? Kod benim için doğru gibi görünüyor. Veya referans parametresi için beklentileri benzer şekilde nasıl ayarlayacağınızı bilmek ister misiniz? ByRef() ', bunun için tamamıyla uygun olur. –
+1, yemek kitabının örneklerinden almak zor. –