Я пытаюсь проверить мой клиентский код 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;
}
}
loggedin, user и sess являются переменными класса.
Я прочитал о том, как тестировать пустые методы, так что я думал о запуске этого метода в модульном тесте и утверждал, что после запуска метода значения loggedin, user и sess были изменены так, как они должны были , но я не понимаю, как создать moqs. StringEncrypt является статическим классом, и клиент создается с использованием одного из файлов, сгенерированных grpc. и я помню, что где-то читал, вы можете создавать только moqs абстрактных классов / интерфейсов ... так как я могу создать moq для них?
спасибо !!