QAbstractItemModel тестирование с использованием modeltest - PullRequest
2 голосов
/ 14 сентября 2011

Я ищу хороший учебник о том, как использовать modeltest для тестирования моделей на основе QAbstractItemModel.Я не знаю, как интерпретировать отображаемые отладочные сообщения.

Также у меня возникают проблемы при настройке проекта modeltest для работы с моим приложением в QtCreator.В том числе .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 ]

1 голос
/ 09 августа 2012

Причина, по которой вы получаете эту ошибку, состоит в том, что вы на самом деле не используете ModelTest внутри надлежащего контрольного примера QTestLib.Если вы посмотрите на / tests / auto / modeltest (где вы, по-видимому, изначально получили класс modeltest), вы увидите, как правильно построить тестовый пример, используя ModelTest.

1 голос
/ 14 сентября 2011

Это будет звучать немного чересчур, но на самом деле это то, что разработчик ModelChecker намеревался сделать;) Когда вы нажмете одно из утверждений, перейдите к той точке кода, в которой оно было выполнено, и прочитайте комментарии, которые написаны вместе с ним. Все это чрезвычайно тщательно прокомментировано, и описывает то, что ломает и вероятные причины почему. Это гораздо проще сделать, если вы запускаете свое приложение через отладчик с графическим интерфейсом, например, включенный, например, в KDevelop, Qt Creator или Visual Studio.

...