首页 > 解决方案 > 如何使用 moq 和 nunit 对 grpc 方法进行单元测试?

问题描述

我正在尝试测试向服务器发送身份验证请求的 grpc 客户端代码。

在类的构造函数中,我有:

 Channel channel = new Channel(adr, ChannelCredentials.Insecure);
 client = new MessageService.MessageServiceClient(channel);

我要测试的那个类里面的方法是:

public void LogIn(String username, String pass)
        {
            try
            {
                String encryptedPass = StringEncrypt.Encrypt(pass, cPP, cSA, "SHA1", 2, cIV, 128);
                Response res = client.LogIn(NewAuthRequest(username, encryptedPass));
                if (res.Authenticated)
                {
                    loggedIn = true;
                    user.UserId_ = username;
                    sess.Sessionid = res.Sessionid;
                    sess.Userid = username;
                }

                Console.WriteLine("Login request response: " + res.Authenticated);
            }
            catch (RpcException e)
            {
                Console.WriteLine("RPC failed " + e);
                throw;
            }
        }

登录、用户和 sess 是类变量。

我阅读了如何测试 void 方法,因此我正在考虑在单元测试中运行此方法并断言是否在运行该方法后,如果登录、用户和 sess 的值已按应有的方式更改。但我对如何创建最小起订量感到困惑。StringEncrypt 是一个静态类,客户端是使用 grpc 生成的文件之一创建的。我记得在某处读过你只能创建抽象类/接口的起订量......那么我怎样才能为它们创建起订量呢?

谢谢!!

标签: c#unit-testingnunitmoqgrpc

解决方案


推荐阅读