Ich möchte eine Template-Klasse mit gtest testen. Ich lese über TYPED_TESTs in und sah auf official example sie verweisen, aber immer noch nicht meinen Kopf um ein Objekt der Template-Klasse in meinem Test instanziiert bekommen.gtest - test template class
die folgende einfache Template-Klasse Angenommen:
template <typename T>
class Foo
{
public:
T data ;
};
In Testklasse wir
typedef ::testing::Types<int, float> MyTypes ;
nun erklären, wie kann ich ein Objekt der Klasse Foo für Ts in MyTypes in einem Test aufgeführt instanziiert? Zum Beispiel
TYPED_TEST(TestFoo, test1)
{
Foo<T> object ;
object.data = 1.0 ;
ASSERT_FLOAT_EQ(object.data, 1.0) ;
}
Wunderbar, vielen Dank TemplateRex! Ich habe versucht mit TypeParam vorher, aber mein Fehler war, dass ich dachte, es ist eine Klasse und tat 'TypeParam n; Foo Objekt; ' Art von Sache, die natürlich nicht kompilieren. Prost! –
Puchatek
@Puchatek Froh, dass ich geholfen habe! – TemplateRex