How to write UI tests (for sublime/ and shell/)

Manuel Breugelmans mbr.nxi at gmail.com
Fri May 2 22:56:29 UTC 2008


On Friday 02 May 2008 23:55:02 Alexander Dymo wrote:
> As I've promised before, I sat down today and wrote a small howto on UI
> testing. This basically summarizes my experience writing tests for sublime/
> and shell. Hope you'll find this useful. If something is missing, please
> ping me ;)
>
> Same howto is on our wiki, if you have changes or fixes, feel free to
> modify: http://www.kdevelop.org/mediawiki/index.php/How_To_Write_UI_Tests
>

Interesting read! 

I'm missing some reference to QVERIFY2 though. This is an undocumented assert 
which allows you to specify failure messages. Especially useful when there's 
loads of VERYIFY/COMPARE in a single command, when one fails you'll know 
immediatly why. Using good failure messages here and there will make the test 
code more readable as well.

I use these macro's in my tests:

#define KVERIFY_MSG(condition,message) QVERIFY2(condition, 
QTest::toString(message))
#define KVERIFY(condition) QVERIFY(condition)
#define KOMPARE_MSG(expected,actual,message) QVERIFY2(expected == actual, 
QTest::toString(message))
#define KOMPARE(expected,actual) QVERIFY(expected == actual)

Maybe it's good to mention 'ctest' as well. This is basicly the command 
behind 'make test', but less keystrokes :) You can pass a --verbose parameter 
which elaborates on failures. Which very stupidly doesnt happen with a 
basic 'make test'.


Manuel




More information about the KDevelop-devel mailing list