c# - 如何使用 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 生成的文件之一创建的。我记得在某处读过你只能创建抽象类/接口的起订量......那么我怎样才能为它们创建起订量呢?
谢谢!!
解决方案
推荐阅读
- spotfire - 在 Spotfire 中应用 Over 函数时如何排除空值
- javascript - 如何使用 AJAX 将代码发送到数据库
- c# - 如何只运行一次浏览器
- mysql - Angular 4 与 nodejs 和 Mysql 连接
- typescript - 函数参数应该是对象的键类型之一
- python - Django 应用启动后仅运行一次命令
- networking - 禁止用户文件夹通过网络共享 Windows 10
- python - html 文件中的 {{ form }} 未呈现
- c# - 点击按钮获取行ID
- c - 是否可以在 gdb 中确定线程是否在内核或用户空间中执行(或阻塞)?