title.png

^<< 2011.06/1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >>$

Trackback の仕組みはありませんので、コメントにでも残していただくと嬉しいかも、です。

(2011.06.05)

Qt開発メモ(3)

QTest

Qtにはユニットテストの仕組みも用意されているというので試してみました。

UnitTestとして最低限必要な QVERIFY や QCOMPARE といった基本的なマクロはあるし、 Qt の signal/slot の仕組みと先日書いたメタオブジェクト情報の仕組み、それからちょっとしたマクロによってテストケースは自動解決されるので、 CppUnit などでは煩雑であったテストケースの登録などは一切無く、その点では評価できます。

また、GUIフレームワークであるQtならではの機能として、 UIイベントをエミュレートすることもできるので、その部分のテストにも有効でしょう。

テストデータのセットを用意する機構も場合によっては便利そうです。

ただ、複数の Test Suite を用意して関連するテストケースを別々の Test Suite にまとめることが できず、かならず単一の Suite の実行しかできないようです。(4.7.3現在)

他にも例外の発生を確認したり、浮動小数点の丸め誤差を考慮した比較ができなかったりと イマイチな部分もけっこうあります。このあたりは Qtのバージョンアップと共に拡張されていく、、、のかな。

今作っているものとしては QTest でぎりぎり十分そうですが、 もっと柔軟にやりたかったら Boost.Test か gtest を使うのがよさそう、という結論に達しました。

ツッコミ