Googleテストで使用できる入力テストコンセプトを使用しようとしています。このコンセプトの説明は、私がしようとしているものと一致しますが、完全に理解することはできません。私はインターフェイスを実装している構造体をテストしたいのですが、それらは全く異なるので、異なる値/インスタンスで初期化する必要があります。Googleテストを使用してインタフェースを実装するさまざまなクラス/構造体をテストするにはどうすればよいですか?
struct Serializable
{
virtual sObj serialize() = 0;
virtual void unserialize(sObj) = 0;
};
struct s1 : serializable
{
int attrI1;
int attrI2;
sObj serialize()
{
//serialize an instance of this struct
}
void unserialize(sObj)
{
//unserialize data to instance of this struct
}
}
struct s2 : serializable
{
char attrC;
void serialize()
{
//serialize an instance of this struct
}
sObj unserialize()
{
//unserialize data to instance of this struct
}
}
を次のように
は単に私のコードがあると私は別のインスタンス/値でs1とs2をテストしたいです。テストは次のようになります:
template <typename T>
int testSerialzable(T& t)
{
sObj obj = t.pack();
T temp;
TEST_EQ(temp.unpack(obj), t);
}
誰かがこれを実行することができますかどうか教えてください。 あらかじめ多くのありがとうございます
異なるタイプのタイプです。テスト対象の型の一時インスタンスを作成する必要があるため、値パラメータ化されたテストは使用できません。 – Mass