为gRPC客户端创建接口以进行单元测试

时间:2019-11-26 04:38:32

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

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

谢谢您的时间!

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

1 个答案:

答案 0 :(得分:3)

Google的人们决定不包括今后的Interfaces(他们过去常常只提出一点)。

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

您可以详细了解here

对于测试生成的抽象类,您可以使用Moq之类的Mocking框架进行测试,但听起来您已经很可能知道了。如果没有,那么有一个示例here