我有一份原始文件
syntax = "proto3";
package hello;
message HelloRequest {
}
message HelloResponse {
}
service HelloService {
rpc UnaryUnaryHello (HelloRequest) returns (HelloResponse) {}
rpc UnaryStreamHello (HelloRequest) returns (stream HelloResponse) {}
rpc StreamUnaryHello (stream HelloRequest) returns (HelloResponse) {}
rpc StreamStreamHello (stream HelloRequest) returns (stream HelloResponse) {}
}然后我为它生成了基本服务和存根。
我还为它创建了一个服务器拦截器,MyServerInterceptor。
现在,我正在尝试使用grpcio测试测试拦截器,但无法弄清楚。实际上,我很难找到任何关于如何使用这个库的文档,这个库看起来像一个已知的问题。
从这个问题上,我找到了这个例子,但是我不知道如何将拦截器添加到测试服务器。
此外,测试使用较低级别描述符的方式似乎相当笨拙。有没有一种方法可以使用生成的存根来发出请求?
最后,示例显示将一个dict {}传递为invocation_metadata,但我认为invocation_metadata应该是元组List[Tuple[str,str]]的列表。
发布于 2022-03-16 17:16:36
您发布的示例尚未合并。我建议在Python中使用实际的gRPC客户机/服务器而不是模拟库来测试gRPC服务。这样,您就可以像客户端那样测试服务器逻辑。
关于元数据类型,您是正确的,应该是List[Tuple[str, str]。
https://stackoverflow.com/questions/71417093
复制相似问题