QAbstractItemModel使用modeltest进行测试

时间:2011-09-13 22:29:51

标签: qt testing qt4 qt-creator qabstractitemmodel

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

此外,我无法在QtCreator中配置modeltest项目以使用我的应用程序。包括 .pri / .pro不起作用。我收到一条错误,上面写着“没有规则来制定目标......”。在修复modeltest / modeltest.pro文件中的路径后,它开始编译。但我得到了这个奇怪的断言

  

ASSERT:“QTest :: testLogger”在文件c:\ ndk_buildrepos \ qt-desktop \ src \ testlib \ qtestlog.cpp,第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

我修改了我的代码,以这种方式使用modeltest

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

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

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

Qt版本是4.7。

2 个答案:

答案 0 :(得分:1)

这听起来有些过分 - 但事实上,它是ModelChecker开发人员想要做的事情;)当您点击其中一个断言时,请转到代码中的点,然后阅读与之一起写的评论。整个事情都得到了极大的评论,并描述了什么是破坏和可能的原因。如果您通过GUI调试器运行应用程序(例如KDevelop,Qt Creator或Visual Studio中包含的应用程序),这是最容易做到的。

答案 1 :(得分:1)

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