11 個のパラメーターを持つ関数をモックすると、エラー メッセージが表示されます。
エラー: 'function_name' は型ではありません
私は使っている
MOCK_METHOD11(function_name,int(param1,param2,....,param11);
11個のパラメータを持つ関数はモックできないということですか?
11 個のパラメーターを持つ関数をモックすると、エラー メッセージが表示されます。
エラー: 'function_name' は型ではありません
私は使っている
MOCK_METHOD11(function_name,int(param1,param2,....,param11);
11個のパラメータを持つ関数はモックできないということですか?
GMock は、モック関数に対して最大 10 個 (含む) のパラメーターをサポートします。そのため、そのままでは機能に使用できません。このメソッドをモックするためにできること:
(推奨) このメソッドをリファクタリングして、パラメーターの数を減らします。パラメータが多すぎると、メソッドの制御と理解が難しくなります。
10 個のパラメーターのみを受け入れる同様のメソッドを持つ中間プロキシ インターフェイスを導入します。それは簡単に達成できます:
class OriginalInterface
{
public:
virtual void method(int param1, int param2) = 0;
};
class ProxyInterface : public OriginalInterface
{
public:
virtual void method(int param1, int param2)
{
method1(param1);
method2(param2);
}
virtual void method1(int param1) = 0;
virtual void method2(int param2) = 0;
};
// Now you mock on ProxyInterface
class MockInterface : public ProxyInterface
{
public:
MOCK_METHOD1(method1, void(int));
MOCK_METHOD1(method2, void(int));
};
私の例では、2 つのパラメーターを持つメソッドを 2 つのメソッドに分割しています。その考えは明確だと思います。
3. (最適ではありません) gmock ソースを変更して、METHOD11 typedef を追加してみてください。