More reorg.
[dorian] / model / modeltest / README
diff --git a/model/modeltest/README b/model/modeltest/README
new file mode 100644 (file)
index 0000000..f13e2af
--- /dev/null
@@ -0,0 +1,30 @@
+ModelTest provides a way to check for common errors in implementations of  <a href="QAbstractItemModel">http://doc.trolltech.com/4/qabstractitemmodel.html</a>.
+
+
+ModelTest continuously checks a model as it changes, helping to verify the state and catching many common errors the moment they show up such as:
+<ul>
+<li>Verifing X number of rows have been inserted in the correct place after the signal rowsAboutToBeInserted() says X rows will be inserted.</li>
+<li>The parent of the first index of the first row is a QModelIndex()</li>
+<li>Calling index() twice in a row with the same values will return the same QModelIndex</li>
+<li>If rowCount() says there are X number of rows, model test will verify that is true.
+<li>Many possible off by one bugs</li>
+<li>hasChildren() returns true if rowCount() is greater then zero.</li>
+<li>and many more...</li>
+</ul>
+
+---
+
+To Use the model test do the following:
+
+1) Include the pri file at the end of your project pro file using the include() command like so:
+
+include(../path/to/dir/modeltest.pri)
+
+2) Then in your source include "modeltest.h" and instantiate ModelTest with your model so the test can live for the lifetime of your model.  For example:  
+
+#include <modeltest.h>
+
+QDirModel *model = new QDirModel(this);
+new ModelTest(model, this);
+
+3) That is it.  When the test finds a problem it will assert.  modeltest.cpp contains some hints on how to fix problems that the test finds.