我正在使用Grpc.Core
和ProtoBuf.Grpc
包,因为我想同时使用这两个包:使用gRPC ClientFactory编写第一个gRPC代码。现在我有了一个Task<Response> MyMethod(Request request, CallContext context)
的接口,其中CallContext
来自ProtoBuf.Grpc
。
在接口的实现中,我获得授权(调用)用户,如下所示:
var user = httpContext.User.Claims.Where(x => x.Type == JwtRegisteredClaimNames.Name).FirstOrDefault();
现在我想对MyMethod
的实现进行单元测试,但是我不知道如何为CallContext
创建正确的上下文。
如何在CallContext
中使用预定义的用户测试我的MyMethod
实现?
- 编辑:**
似乎可以通过调用构造函数来创建和传递CallContext
的示例
public CallContext(object server, ServerCallContext context)
我可以通过TestServerCallContext.Create()
创建ServerCallContext
对象,参见here。但是我不知道object server
传递什么。有人能给我一个例子吗?
1条答案
按热度按时间vngu2lb81#
对于带有身份验证和用户上下文的
gRPC
单元测试,我的解决方案是以下方法:TestServerCallContext.Create
的参数来自here。也许这可以帮助别人保存一些小时或几天:)