检查protobuf消息中的重复字段是否包含值

时间:2020-03-06 14:30:18

标签: unit-testing automated-tests googletest gmock googlemock

我正在使用gTest和gMock进行一些单元测试,试图测试是否向函数传递了protobuf消息,该消息在重复字段中包含特定值。我当前正在构建期望消息的精确副本,然后使用google::protobuf::util::MessageDifferencer期望收到确切消息。

问题是我真的不想比较整个消息;我只想验证重复字段中是否存在特定值。可能还有其他我不在乎的值。

我正在考虑编写自定义匹配器,例如

MATCHER_P(FieldFinder, expected, "")
{
  for (element : arg.repeated_field())
  {
    if (element == expected)
    {
      return true;
    }
  }
  return false;
}

但是此匹配器将绑定到此特定的消息结构中,并且如果重复的字段位于其他位置,则不允许我重复使用它。有更好的方法吗?

0 个答案:

没有答案