1

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

QFETCH(MyType, value);

尝试编译测试类时,出现此错误:

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

1 回答 1

4

当使用QTest::addColumnandQFETCH用于 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);
        ...
}
};
于 2013-01-14T21:55:30.947 回答