Можно ли выполнить модульное тестирование из приложения .NET, работающего в облаке? - PullRequest
0 голосов
/ 13 ноября 2018

Я довольно новичок в .NET (я пришел из среды Java и Spring) и до сих пор никогда не работал в облаке.

В данный момент я начал работать надновый проект .NET развернут в Azure.Я знаю, что могу отладить его в Visual Studio с помощью представления Cloud Explorer , но у меня есть сомнения относительно того, как я могу выполнить модульный тест в облаке.

Iпопробуй лучше объяснить на примере.В моем проекте у меня есть этот класс контроллера:

namespace MyProject.Controllers
{
    /**
     *  Classe controller che implementa le operazioni per protocollare una mail
     */
    public class MailProtocolloController : ApiController
    {

        private String urlBaseProtocolloApi = "http://myserver.westeurope.cloudapp.azure.com:8081/myApi";

        public void getAooList()
        {
            string jsonRequest = urlBaseProtocolloApi + "/api/myresource/GetDepartmentsList";

            CredentialCache credCache = new CredentialCache();
            credCache.Add(new Uri(jsonRequest), "NTLM", CredentialCache.DefaultNetworkCredentials);

            HttpWebRequest spRequest = (HttpWebRequest)HttpWebRequest.Create(jsonRequest);
            spRequest.Credentials = credCache;
            spRequest.UserAgent = "Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0";
            spRequest.Method = "GET";
            spRequest.Accept = "application/json;odata=verbose";

            HttpWebResponse endpointResponse = (HttpWebResponse)spRequest.GetResponse();
            string sResult;


        }

    }
}

Хорошо, я знаю, что в данный момент этот API ничего не возвращает (пусто), он все еще находится в зачаточном состоянии, и я должен изменить его.

На данный момент единственное, что я хочу сделать, это проверить его с помощью модульного теста, чтобы проверить, содержит ли свойство sResult результат.

Вопросы:

1) Для выполнения моего приложения его необходимо развернуть в облаке (поскольку этот API вызывает API REST, который должен находиться в той же среде, на самом деле, я присоединяю учетные данные с использованием класса CredentialCache Могу ли я развернуть это приложение в облаке и выполнить здесь мой модульный тест? (Что-то вроде выполнения отладки в облаке с использованием представления Cloud Explorer .

2) Что мне делатьсоздать модульный тест в .NET-проекте? (В Java я просто создаю класс, импортирующий JUnit)

1 Ответ

0 голосов
/ 13 ноября 2018

1.) Если вам нужно протестировать его в облаке, это не юнит-тест, а интеграционный тест!Для интеграционных тестов я рекомендую вам почтальона и бегуна почтальона ( newman ).Вы можете определить ваши остальные вызовы в почтальоне с помощью JS-скриптов, чтобы проверить ответы, и вы можете вызвать определенный тест с помощью CLI-Tool newman , чтобы автоматизировать это.

2.) В C # есть 2 возможности для модульного теста MS Test и NUnit .Вот матрица сравнения между ними, чтобы решить, какой из них лучше всего подходит:
http://www.anarsolutions.com/automated-unit-testing-tools-comparison/
Если вы хотите что-то похожее на JUnit, то я думаю, что NUint лучше для вас:

NUnit - это инфраструктура модульного тестирования с открытым исходным кодом для Microsoft .NET.Он служит для той же цели, что и JUnit в мире Java

Например, для MS Test вам нужно добавить пакет MSTest Nuget, определить свой класс с аннотацией [TestClass] и метод тестирования с помощьюannotaion [TestMethod] После этого вы можете использовать Assert команды в вашем методе тестирования, т.е.

[TestClass]
public class MyTestClass
{
  [TestMethod]
  public void MyTest_Successful()
  {
    Assert.IsTrue(/*Something true*/ true);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...