& quot; нет члена с именем ‘qt_metatype_id’ & quot; для QFETCH

Я добавил эту строку в мой тестовый класс QTestLib:

QFETCH(MyType, value);

При попытке скомпилировать тестовый класс я получаю эту ошибку:

error: no member named 'qt_metatype_id' in 'QMetaTypeId<MyType>'

1

Решение

Когда используешь QTest::addColumn а также QFETCH для типа, не встроенного в Qt, вы должны добавить эту строку:

Q_DECLARE_METATYPE(MyType);

Это идет выше начала вашего тестового класса. Например:

Q_DECLARE_METATYPE(MyType);

class MyTest : public QObject
{
Q_OBJECT

private slots:

void testSomething_data()
{
QTest::addColumn< MyType >("expectedValue");
...
}
void testSomething()
{
QFETCH(MyType, expectedValue);
...
}
};
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]