c# - 为 gRPC 客户端创建接口(interface)以进行单元测试

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

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

感谢您的宝贵时间!

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

最佳答案

Google 的人员决定不再包含接口(interface)(他们曾经生成过一个点)。

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

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

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

关于c# - 为 gRPC 客户端创建接口(interface)以进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59043834/

相关文章:

c# - 单元测试传递字符串参数除 null 或空之外的任何字符串值

c# - 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

php - 使用 PHPUnit 测试 PHP header

asp.net-core - ASP.NET Core 2.2 中的路由本地化

c# 悬停时在控件周围绘制矩形

typescript - 使用 TypeScript 使用 Jest 测试或模拟未导出的函数

c# - 如何在 .NET Core 上注册新的 NuGet 包源?

c# - 是否可以检测是否有使用 C# 连接的 HDMI 设备?

c# - 有没有办法为每个项目进行 NuGet 包源设置?

C# 字段命名指南?