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:
- Załącz plik pri na końcu Twojego pliku projektu pro przy użyciu polecenia include():
include(../path/to/dir/modeltest.pri)
- 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);
- 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.