2013-01-05 17 views
0

我已經在C++中定義了我自己的類DoubleMatrix。如何爲不同的錯誤消息編寫gtest unittests,例如尺寸不匹配或錯配數量?如何在C++中爲我自己的類寫gtest unittest

我需要認識到水木清華這樣的代碼

for (int i = 0; i < x.size(); ++i) { 
    EXPECT_EQ(x[i], y[i]) << "Vectors x and y differ at index " << i; 
} 

但應該調用這樣的:

DoubleMatrix a, b; 
EXPECT_EQ(a, b) 

DoubleMatrix a, b; 
double epsilon = 0.0001; 
EXPECT_NEAR(a, b, epsilon) 
+0

不應該從你的類拋出這些錯誤異常嗎? –

+0

不,我的類就像一個結構體,它只有構造函數和一些參數。 – user1761982

+0

我想你已經在這裏看過[gtest primer](http://code.google.com/p/googletest/wiki/Primer) –

回答

1

您可以自定義謂詞做相同。

你可以檢查http://code.google.com/p/googletest/wiki/AdvancedGuide瞭解詳情。 (檢查謂詞斷言爲更好的錯誤信息中的鏈接部分)

例如,你可以有一個函數:

bool foo(DoubleMatrix a, DoubleMatrix b) { 
// do the comparison and return true or false } 

使用此通過EXPECT_PRED2(FOO,A,B);

相關問題