Как проверить класс шаблонов C ++ с несколькими параметрами шаблона с использованием gtest?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как проверить класс шаблонов C ++ с несколькими параметрами шаблона с использованием gtest?

Сообщение Anonymous »

Я хочу проверить класс шаблонов с помощью GTEST. Я прочитал о Typed_Test s в руководстве GTEST и посмотрел на официальный пример (образцы \ sample6_unittest.cc). Этот шаблон из примера имеет только один параметр шаблона.
Но, мой код имеет два параметра шаблона, как я могу его протестировать?

Код: Выделить всё

// two element type
template 
class QueueNew
{
public:
QueueNew() {}
void Enqueue(const E& element) {}
E* Dequeue() {}
F size() const
{
return (F)123;
}
};
< /code>
, для которого я написал тестовый код ниже: < /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>
Но при создании я получаю ошибку: < /p>
error C2976: 'QueueTestNew' : too few template arguments
see declaration of 'QueueTestNew'
...
Я думаю, что мой метод тестового шаблона с GTEST неверен, так как мне это сделать?

Подробнее здесь: https://stackoverflow.com/questions/293 ... sing-gtest
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»