c++ - "no member named ' qt_metatype_id '"用于 QFETCH

标签 c++ qt qtestlib

我将这一行添加到我的 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);
        ...
}
};

关于c++ - "no member named ' qt_metatype_id '"用于 QFETCH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14327463/

相关文章:

c++ - 使用 Visual Studio 2008 开发 Android 应用程序

c++ - 从 C/C++ 控制 Firefox

c++ - 实时从数据读取器终端获取数据到 GUI

c++ - QList 如何决定是存储指针还是存储项目本身?

c++ - QTestLib单元测试框架+Gmock(创建QTCPServer-Mock对象)

c++ - QTcpClient 成功连接,但没有连接到我的服务器。它连接在哪里?

c++ - 忽略 std::min 中的零并计算其他数字的最小值

c++ - Qt:显示实时视频,一次一帧

qt - 如何使用QTest验证是否引发了异常?

c++ - tbb-tasks 没有收到给定的参数