Ich versuche, typisierte Test-Konzept in Google-Test zur Verfügung zu verwenden. Die Beschreibung dieses Konzepts stimmt mit dem überein, was ich vorhabe, aber ich kann es nicht vollständig herausfinden. Ich möchte Strukturen testen, die eine Schnittstelle implementieren, da sie einmal völlig unterschiedlich sind, müssen sie mit verschiedenen Werten/Instanzen initialisiert werden.Wie testet man verschiedene Klassen/Strukturen, die eine Schnittstelle mit Google Test implementieren?
einfach mein Code wie folgt
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
}
}
Und ich will s1 und s2 mit verschiedenen Instanzen/Werte testen. Der Test sollte wie folgt aussehen:
template <typename T>
int testSerialzable(T& t)
{
sObj obj = t.pack();
T temp;
TEST_EQ(temp.unpack(obj), t);
}
Kann mir bitte jemand sagen, ob das möglich ist und wie? Vielen Dank im Voraus
Die Typen, die von verschiedenen Typen stammen. Ich muss eine temporäre Instanz des Typs test erstellen, daher kann ich keine wertparametrisierten Tests verwenden. – Mass