How to test-drive your Qt QML code. Overview on how you do simple testing, UI level testing, synchronous testing, data-driven testing.
These are the slides used on the Tampere MeeGo meetup on March 15, 2011 and text may not be super clear for those who didn't attend the meetup. You can still download the example and examine it.
2. Artem Marchenko Product Manager, Researcher, Coach Product Manager shipping multi-hundred MEur products Scrum Master, Practitioner, Product Owner and Coach Three times Forum Nokia Champion Private entrepreneur Available for hire http://fi.linkedin.com/in/artemmarchenko
3. Test-Driven Development. Or just testing QML What TDD is about Getting started Simple Synchronous test Simulating mouse and keyboard actions Asynchronous tests (verifying callbacks) Data-driven tests Current limitations Q&As
8. Getting started 3(2) And a script that runs the test: runTests.sh in this case #!/bin/bash clear /Users/artem/QtSDK/Desktop/Qt/471/gcc/bin/QMLViewer.app/Contents/MacOS/QMLViewer tst_tddCalculator2.qml
15. Current Limitations Installation doesn’t install qtest-qml to QtCreator 2.1 Tech Preview Not that you would need it for TDD, but if you are into “just testing” already written code, debugger may be helpful Bug: only one TestCase is allowed: http://bugreports.qt.nokia.com/browse/QTBUG-17200 It makes init() and cleanup nearly useless Organize your test structure by your own tools Small difficulties comparing built-in classes (e.g. color) toString() helps most of the time
16. Current limitations Very strange errors when object/property can be accessed e.g. because of a typo Segmentation faults, sometimes even “file not found” In 95% of cases that is a typo or an attempt to access a non-public property
17. Current limitations SignalSpy can only count It cannot examine the signal arguments or the state of other objects Benchmarking is a part of a qtest-qml, but doesn’t work properly That is I failed to make it run for a given amount of times (most of the time it does just a single run) No built-in device test runners Though you can certainly, embed a “run tests” button right into your application
18. Thank you Q&As time You can find these slides at http://agilesoftwaredevelopment.com/tags/tdd
Hinweis der Redaktion
Adding numbers continuously – property bindingChange color when result is over 1000 => .toString() when comparing complex built-in objectsMove to states. Change the default color