为 gRPC 客户端创建用于单元测试的接口

Create interfaces for gRPC client for unit tests

我有一个带有生成的 gRPC 客户端的 dotnet core 3 控制台应用程序项目(使用下面 csproj 中的 Protobuf 元素)。我想对我的代码进行单元测试。有没有办法生成我的 gRPC 客户端以包含生成的 类 的接口,以便我可以正确模拟 gRPC 客户端?

感谢您的宝贵时间!

<ItemGroup>
    <Protobuf Include="..\..\Data\Protos\*" GrpcServices="Client" />
</ItemGroup>

Google 的人们决定不包括以后的接口(他们过去常常生成它)。

他们引用的主要原因是接口无法保持 backward/forward 底层 protobuf 所需的兼容性。如果您更改界面,这将破坏构建以及与以前构建的任何兼容性。

您可以阅读更多相关信息 here

至于测试生成的摘要 类,您可以使用 Moq 等模拟框架对其进行测试,但听起来您很可能已经意识到这一点。如果没有,有一个例子 here.