我有一个 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/