【问题标题】:Create interfaces for gRPC client for unit tests为 gRPC 客户端创建接口以进行单元测试
【发布时间】:2020-03-21 10:52:41
【问题描述】:

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

感谢您的宝贵时间!

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

【问题讨论】:

    标签: c# unit-testing .net-core grpc grpc-dotnet


    【解决方案1】:

    Google 的人决定不再包含接口(他们过去只生成一个点)。

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

    您可以阅读更多关于它的信息here

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 2021-08-28
      • 2016-03-09
      • 2016-03-27
      • 2015-06-28
      相关资源
      最近更新 更多