ブール値を参照パラメーターとして受け取り、整数を返すクラスがあります。
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;
}
}
そして、このクラスのモックを作成しました:
class MockFoo : public Foo
{
MOCK_METHOD1(myMethod,int(bool &my_boolean));
}
単体テストを適切に作成するには、戻り値と参照パラメーターを特定の値に設定する必要があるため、この種の関数の期待値を設定する方法に問題があります。gmock でこの種の関数を処理するにはどうすればよいですか?ドキュメントの解決策と思われるものに従ってみました:
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));
しかし、私は例を理解していなかったか、このケースには当てはまりませんでした.誰かがこの種の状況を以前に扱ったことがありますか?
前もって感謝します。