在我目前的项目中,我坚持使用枚举的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
答案 0 :(得分:0)
可以使用您提到的任何一种语言,将消息Foo中的Enum值A转换为其字符串表示形式,并使用字符串名称获取消息Bar中的Enum值B,并确保两个值相等。
Python API:https://developers.google.com/protocol-buffers/docs/reference/python-generated#enum