2011-09-02 69 views
1

我目前正在C++和Java中處理字體庫的C++端。交叉語言通用測試數據的格式

我們希望自動生成多種字體的測試數據,並且我們使用Google Test和JUnit進行測試。

我將編寫一個腳本來生成這種通用格式的數據,然後在測試中進行解析。問題在於,對於C++,我還想使用Google Test的值參數化測試,這也意味着在C++中也有數據。

因此,我正在考慮以某種常見格式輸出數據,並從中生成C++文件。

通常情況下,我們會考慮使用XML或JSON,但Protocol Buffers似乎非常容易適合生成代碼,這使得它們很有趣。 我從來沒有使用過它們並瀏覽過文檔,它們看起來非常擅長定義消息,而不是存儲實際值(所以我可以定義一個Person消息,但我真正想要做的是存儲一堆Person常量)。

我們應該使用什麼格式?

謝謝!

回答

1

它看起來像Protocol Buffers是一個很好的匹配你的用例。它在C++和Java環境中都快速且易於使用。它也非常穩定,記錄完備,並在Google以外廣泛使用。關於在二進制流中存儲多個對象,存在衆所周知的常規方法。例如,請參閱以下答案:Storing multiple messages in one protocol buffer binary file

請記住,即使Protobuf是二進制格式,仍然可以將測試用例轉換爲人類可讀的格式,例如JSON或XML。下面是一些相關鏈接:

+0

感謝您的回答!由於其他考慮,我們最終使用了XML,但很高興知道可以以這種方式使用protobufs :) –