用于比较两个.proto文件的库以获得相同的消息ID

时间:2018-04-10 17:04:08

标签: protocol-buffers

在我目前的项目中,我坚持使用枚举的protobufs。为了确保向后兼容性,我需要确保这些枚举保持不变,并且我想为此编写单元测试。

示例:

legacy_mood.proto:

enum Mood {
  HAPPY = 0;
  SAD = 1;
}

mood.proto:

enum Mood {
  EXCITED = 0;
  HAPPY = 1;
  SAD = 2;
}

我正在寻找一种比较这两个原型的方法,在这种情况下让测试失败,因为来自HAPPY和SAD的常量值发生了变化。

我想允许新值,所以我真的只想检查遗留原型中存在的元素的等价性,因此在这种情况下应该忽略EXCITED。

在我自己实现之前,是否有一个库?我现在一直在谷歌,但无法找到任何东西。可以是Java,C ++或Python

1 个答案:

答案 0 :(得分:0)

可以使用您提到的任何一种语言,将消息Foo中的Enum值A转换为其字符串表示形式,并使用字符串名称获取消息Bar中的Enum值B,并确保两个值相等。

Python API:https://developers.google.com/protocol-buffers/docs/reference/python-generated#enum