2012-03-20 24 views
0

我目前正在爲我的應用程序使用QTestLib構建單元測試套件。它通常很簡單,但我被困在如何驗證「返回」參數上。例如,如果我有一個函數:QTestLib - 驗證非const引用參數

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

功能分配withinBounds區段距離分析的有界狀態。我怎樣才能使宏分析它的狀態?

回答

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 2012-03-20 13:20:26

+1

[QCOMPARE](http://qt-project.org/doc/qt-4.8/qtest.html#QCOMPARE)行應該實際上是:QCOMPARE(distance + 1.0,預期+ 1.0)來處理零值。 – JadziaMD 2012-03-20 13:34:43

+0

JadziaMD:對,謝謝,編輯回答。 – 2012-03-20 18:35:47