ModelTest pozwala na wykrycie popularnych błędów w implementacjach QAbstractItemModel.

ModelTest kontynuuje sprawdzanie modelu w miarę, jak ten się zmienia, co pozwala na weryfikację stanu i natychmiastowe wychwycenie popularnych błędów, takich jak:

- Weryfikacja, że X wierszy zostało wstawione w odpowiednie miejsce po tym, jak sygnał rowsAboutToBeInserted() informuje o tym, że wstawione zostanie X wierszy.
- Rodzic pierwszego indeksu pierwszego wiersza to QModelIndex()
- Dwukrotne wywołanie index() z tymi samymi wartościami zwróci ten sam QModelIndex
- Jeśli rowCount() twierdzi, że istnieje X wierszy, model test sprawdzi, czy to prawda.
- Wiele możliwych błędów wynikających z pomyłki o 1 przy numerowaniu indeksu
- hasChildren() zwraca true jeśli rowCount() jest większe od zero.
- and many more...

Aby skorzystać z narzędzia ModelTest, wykonaj następujące kroki:

1. Załącz plik pri na końcu Twojego pliku projektu pro przy użyciu polecenia include():

       include(../path/to/dir/modeltest.pri)

2. Następnie w pliku źródłowym załącz "modeltest.sh" i utwórz instancję ModelTest z Twoim modelem. Dzięki temu test będzie działał tak samo długo jak Twój model. Na przykład:

       #include <modeltest.h>

       QDirModel *model = new QDirModel(this);
       new ModelTest(model, this);

3. To wszystko. Kiedy test natknie się na problem, użyje asercji. Plik modeltest.cpp zawiera nieco wskazówek na temat naprawiania problemów zgłoszonych przez narzędzie testujące.