Как выполнить модульный тест GRPC метод, используя moq и nunit? - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь проверить мой клиентский код 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 для них?

спасибо !!

...