2012-03-20 7 views
0

私は現在、QTestLibを使用して、自分のアプリケーション用の単体テストスイートを構築しています。それは一般的にはかなり簡単ですが、私は 'return'引数を検証する方法に固執しています。私は機能を持っている場合、例えば:QTestLib - const以外の参照引数の確認

double pointLineSegmentDistance(const QVector2D& start, 
           const QVector2D& end, 
           const QVector2D& point, 
           bool& withinBounds); 

機能はwithinBoundsセグメント距離解析の有界状態を割り当てます。 QCOMPARE/QVERIFYマクロの状態を分析するにはどうすればよいですか?

答えて

2

はちょうど引数としてローカル変数を渡し、/検証その後、その値を比較します。明らかに、

bool withinBounds = false; 
const double distance = pointLineSegmentDistance(..., withinBounds); 
QCOMPARE(distance + 1.0, 2.0); //qFuzzyCompare doesn't work well with 0.0 
QVERIFY(withinBounds); 
+0

ああ血まみれの地獄を!それでは、答えは別の未熟なバカに役立つでしょう... – cmannett85

+1

[QCOMPARE](http://qt-project.org/doc/qt-4.8/qtest.html#QCOMPARE)行は実際には:QCOMPARE(距離+ 1.0、期待値+ 1.0)を使用してゼロ値を処理します。 – JadziaMD

+0

JadziaMD:ありがとう、答えは編集されました。 –