"no member named 'qt_metatype_id'" for QFETCH

"no member named 'qt_metatype_id'" for QFETCH

本文关键字:id for QFETCH metatype no member qt named      更新时间:2023-10-16

我将这一行添加到我的QTestLib测试类中:

QFETCH(MyType, value);

当尝试编译测试类时,我得到这个错误:

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

当使用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);
        ...
}
};