3

我正在寻找一个关于如何使用 modeltest 来测试基于 QAbstractItemModel 的模型的好教程。我不知道如何解释显示的调试消息。

此外,我在配置 modeltest 项目以在 QtCreator 中使用我的应用程序时遇到问题。包括.pri/ .pro 不起作用。我收到一条错误消息,提示“没有法师目标的规则......”。在 modeltest/modeltest.pro 文件中修复路径后,它开始编译。但我得到了这个奇怪的断言

断言:文件 c:\ndk_buildrepos\qt-desktop\src\testlib\qtestlog.cpp 中的“QTest::testLogger”,第 232 行

任何想法为什么会发生这种情况?


我的 modeltest 文件夹位于我的项目中。我在 *.pro 文件的末尾添加了以下行

include(modeltest/modeltest.pri)

modeltest.pri 文件包含以下内容

load(qttest_p4)
SOURCES         += modeltest/modeltest.cpp modeltest/dynamictreemodel.cpp 
HEADERS         += modeltest/modeltest.h modeltest/dynamictreemodel.h

我修改了我的代码以这种方式使用模型测试

model = new TasksModel(this);
new ModelTest(model, this);
ui->treeView->setModel(model);

TasksModel 是我对 QAbstractItemModel 模型的实现。ui->treeView 是显示数据的小部件。

将 modeltest 与我的应用程序集成时没有进行其他修改。

Qt版本是4.7。

4

2 回答 2

1

这听起来有点过分 - 但事实上,这正是 ModelChecker 开发人员打算让你做的事情;) 当你点击其中一个断言时,转到代码中被点击的位置并阅读注释一起写的。整件事都被大量评论,并描述了什么是破坏和可能的原因。如果您通过 GUI 调试器(例如 KDevelop、Qt Creator 或 Visual Studio 中包含的调试器)运行应用程序,这是迄今为止最容易做到的。

于 2011-09-13T22:36:06.513 回答
1

您收到此错误的原因是您实际上并未在正确的 QTestLib 测试用例中使用 ModelTest。如果你看一下 /tests/auto/modeltest (你可能首先得到了 modeltest 类),你可以看到如何使用 ModelTest 正确地构建一个测试用例。

于 2012-08-08T20:25:30.447 回答