“没有名为'qt_metatype_id'的成员用于QFETCH

时间:2013-01-14 21:55:31

标签: c++ qt qtestlib

我将此行添加到我的QTestLib测试类:

QFETCH(MyType, value);

在尝试编译测试类时,我收到此错误:

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

1 个答案:

答案 0 :(得分:4)

当使用QTest::addColumnQFETCH类型没有内置到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);
        ...
}
};