Wie teste ich C ++ - Vorlagenklasse mit mehreren Vorlagenparametern mit GTEST?C++

Programme in C++. Entwicklerforum
Anonymous
 Wie teste ich C ++ - Vorlagenklasse mit mehreren Vorlagenparametern mit GTEST?

Post by Anonymous »

Ich möchte eine Vorlagenklasse mit GTest testen. Ich habe über typed_test im GTEST -Handbuch gelesen und mir das offizielle Beispiel (Samples \ sample6_unittest.cc) angesehen. Diese Vorlage aus dem Beispiel hat nur einen Vorlagenparameter.

Code: Select all

// two element type
template 
class QueueNew
{
public:
QueueNew() {}
void Enqueue(const E& element) {}
E* Dequeue() {}
F size() const
{
return (F)123;
}
};
< /code>
, für das ich den Testcode unten geschrieben habe: < /p>
template 
QueueNew* CreateQueue();

template 
QueueNew* CreateQueue()
{
return new QueueNew < int, int > ;
}
template 
QueueNew* CreateQueue()
{
return new QueueNew < char, char > ;
}

template 
class QueueTestNew;

template 
class QueueTestNew : public testing::Test
{
protected:
QueueTestNew() : queue(CreateQueue()){}
virtual ~QueueTestNew(){ delete queue; }
QueueNew* const queue;
};

template 
class QueueTestNew : public testing::Test
{
protected:
QueueTestNew() : queue(CreateQueue()){}
virtual ~QueueTestNew(){ delete queue; }
QueueNew* const queue;
};

// The list of types we want to test.
typedef ::testing::Types  Implementations;

TYPED_TEST_CASE(QueueTestNew, Implementations);

TYPED_TEST(QueueTestNew, DefaultConstructor)
{
EXPECT_EQ(123u, this->queue->size());
}
< /code>
Aber beim Erstellen erhalte ich den Fehler: < /p>
error C2976: 'QueueTestNew' : too few template arguments
see declaration of 'QueueTestNew'
...
Ich denke, meine Methode für Testvorlagen mit GTEST ist falsch. Wie soll ich das tun?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post