我正在爲處理數據轉換的規範編寫參考實現。從CPPunit測試用例中爲規範生成參考測試文件
我有很多的測試用例檢查數據越來越向前和向後適當改造,是這樣的:
void test(){
int x[maxTest], y[maxTest], z[maxTest];
fillRandomly(x, testSize);
MyTransform trans = MyTransform(testsize);
trans.apply(x, testSize, y);
trans.remove(y, testSize, z);
for(int i = 0; i < testSize; i++)
CPPUNIT_ASSERT(abs(x[i] - z[i]) < 2);
}
數據類型測試用例和變換之間的差異很大。
我想生成的是包含輸入/輸出和中間階段的文件,以便進一步的實現可以驗證其結果。
有幾個明顯的方法可以使這項工作(例如,命名輸出文件並對其中的所有內容進行命名),但其中大多數意味着要回到每個測試用例和一大堆複製粘貼。
來自Java,自省想到一個包裝來解決我的一些問題(自動命名測試輸出文件...),但不是所有的,我建議遠離它在C++(意見歡迎)。
泛型應用/刪除方法似乎也是一個很好的候選人,但不會那麼容易,因爲沒有抽象變換類型和變換之間很少符合(可能仍然是一個不錯的選擇,因爲沒有很多類型的變換)。
所以我想知道你們中的任何一個人是否必須做類似的事情以及如何解決它。我不介意修改所有的測試用例,如果這意味着以後我可以乾淨一些。
任何輸入將不勝感激。
你想在這些文件中再次存儲什麼? – 2013-05-03 11:43:10
[Boost.Serialization](http://www.boost.org/libs/serialization/doc/index.html)有用嗎? – 2013-05-03 11:50:01
在文件中,我想存儲輸入數據和每個變換的輸出數據,在這種情況下,x和z。這種方式在重新實現時很容易確保一切都是正確的。序列化並不真正適合我的需求。 – 2013-05-03 12:39:58