Cppunit_test с использованием функции шаблона с несколькими параметрамиC++

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

Сообщение Anonymous »

Я пытаюсь зарегистрировать некоторые тесты cppunit parametrized. < /p>
Этот код компилируется и работает просто нормально: < /p>

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

#pragma once

#include 

class TestCaseT : public CPPUNIT_NS::TestFixture
{
CPPUNIT_TEST_SUITE(TestCaseT);
CPPUNIT_TEST(TestFunc);
CPPUNIT_TEST(TestFunc);
CPPUNIT_TEST_SUITE_END();

protected:
template  void TestFunc()
{
// to test
}
};
< /code>
Однако, когда моя функция принимает больше параметров, она не может компилировать: < /p>
class TestCaseT : public CPPUNIT_NS::TestFixture
{
CPPUNIT_TEST_SUITE(TestCaseT);
CPPUNIT_TEST(TestFunc);
CPPUNIT_TEST(TestFunc);
CPPUNIT_TEST(TestFunc);
CPPUNIT_TEST_SUITE_END();

protected:
template  void TestFunc()
{
// to test
}
};
< /code>
ошибка: < /p>
test.h(8,5): warning C4002: trop d'arguments pour l'appel de macro de type fonction 'CPPUNIT_TEST'
1>test.h(9,5): warning C4002: trop d'arguments pour l'appel de macro de type fonction 'CPPUNIT_TEST'
1>test.h(8,5): error C2059: erreur de syntaxe : ')'
1>test.h(9,5): error C2059: erreur de syntaxe : ')'
1>test.h(10,5): error C2059: erreur de syntaxe : ')'
1>test.h(11,5): error C2143: erreur de syntaxe : absence de ';' avant '}'
...
< /code>
macro cppunit_test определяется, как ниже: < /p>
#define CPPUNIT_TEST( testMethod )                        \
CPPUNIT_TEST_SUITE_ADD_TEST(                           \
( new CPPUNIT_NS::TestCaller(    \
context.getTestNameFor( #testMethod),   \
&TestFixtureType::testMethod,           \
context.makeFixture() ) ) )
Есть ли способ это исправить?

Подробнее здесь: https://stackoverflow.com/questions/797 ... parameters
Ответить

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

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

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

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

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