我目前正在使用C ++和Java的字体库的C ++方面工作。
我们希望自动生成多种字体的测试数据,我们正在使用Google Test和JUnit进行测试。
我将编写一个脚本来生成这种通用格式的数据,然后在测试中进行解析。问题是,对于C ++,我还想使用Google Test的值参数化测试,这也意味着在C ++中使用数据。
所以,我正在考虑以一些通用格式输出数据,并从中生成C ++文件。
通常情况下,我们会考虑使用XML或JSON,但协议缓冲区似乎很容易满足生成代码的要求,这使得它们很有趣。 我从来没有使用它们并浏览文档,它们似乎非常擅长定义消息,而不是存储实际值(所以我可以定义一个Person消息,但我真正想做的是存储一堆Person常量)
我们应该使用什么格式?
谢谢!
答案 0 :(得分:1)
看起来协议缓冲区非常适合您的用例。它在C ++和Java环境中使用起来既快速又容易。它也非常稳定,文档齐全,在Google以外广泛使用。
对于在二进制流中存储多个对象,存在众所周知的传统方法。例如,请参阅此SO答案:Storing multiple messages in one protocol buffer binary file
请记住,即使Protobuf是二进制格式,仍然可以将测试用例转换为人类可读的格式,例如JSON或XML。以下是一些相关链接: