5

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

感谢您的时间!

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

1 回答 1

4

谷歌的人决定不再包含接口(他们曾经生成一个点)。

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

你可以在这里阅读更多关于它的信息。

至于测试生成的抽象类,您可以使用 Mocking 框架(例如 Moq)对其进行测试,但听起来您很可能已经意识到这一点。如果没有,这里有一个例子

于 2020-01-09T05:19:32.017 回答