Как да пишете модулни тестове в C# за по-добро качество на кода

Kak Da Pisete Modulni Testove V C Za Po Dobro Kacestvo Na Koda



Когато повечето от нас започват като разработчици, едва ли мислим или отделяме много време за тестване на единици. Въпреки това, когато влезете в по-сложна и споделена среда на хранилище, става все по-важно да тествате кода, преди да го внедрите в производство.

Ето защо е от съществено значение да научите основите на модулното тестване в началото на етапите на разработка, за да избегнете кривата на обучение, когато работите с обширни кодови бази.

В този урок ще ви запознаем с рамката на модулното тестване с помощта на C# и библиотеката за тестване MSTest. Ние ще изградим основно приложение, което ще ви позволи да научите как да създавате модулни тестове, как да ги изпълнявате и как да интерпретирате резултатите от провал или успех на тест.







Среда за тестване

Нека започнем с обсъждане на тестовото решение и как да конфигурираме нашето основно приложение.



За да следвате и копирате приложението в този урок, уверете се, че имате следното:



  1. Инсталирано Visual Studio
  2. Конфигурирани .NET и C# инструменти на вашата машина

Създайте приложение

След това отворете Visual Studio и създайте ново решение. За този урок ще създадем основно приложение за калкулатор. Можете да дадете на приложението всяко име, което желаете.





След това създайте нов проект и изберете типа на проекта като MSTest Test Project и му дайте произволно име.



Уверете се, че сте избрали „Добавяне към решение“ и изберете създаденото по-рано приложение.

Трябва да имате основното приложение и проекта за тестване на единици, както е показано в изследователя на решения.

Напишете кода за приложението Калкулатор

Следващата стъпка е писането на кода за нашето приложение за калкулатор. Можем да направим това във файла „program.cs“ на CalcApp.

Тъй като търсим основна функционалност, можем да добавим изходния код, както следва:

публичен клас калкулатор
{
публичен двойно Добавете ( двойно а , двойно b )
{
връщане а + b ;
}

публичен двойно Извадете ( двойно а , двойно b )
{
връщане а - b ;
}

публичен двойно Умножете ( двойно а , двойно b )
{
връщане а * b ;
}

публичен двойно Разделям ( двойно а , двойно b )
{
ако ( b == 0 )
хвърля ново изключение DivideByZeroException ( ) ;
връщане а / b ;
}
}

Както можете да предположите, предишният код създава приложение за калкулатор, което може да изпълнява основните аритметични приложения.

Напишете модулните тестове

След като сме готови, можем да напишем модулните тестове за класа „Калкулатор“. В този случай всичко, което трябва да направим, е да напишем тестовете във файла „UnitTest“ на проекта, както следва:

използвайки System ;

пространство от имена CalcApp
{
публичен клас калкулатор
{
публичен двойно Добавете ( двойно а , двойно b )
{
връщане а + b ;
}

публичен двойно Извадете ( двойно а , двойно b )
{
връщане а - b ;
}

публичен двойно Умножете ( двойно а , двойно b )
{
връщане а * b ;
}

публичен двойно Разделям ( двойно а , двойно b )
{
ако ( b == 0 )
хвърля ново изключение DivideByZeroException ( ) ;
връщане а / b ;
}
}
}

пространство от имена CalcTest
{
[ TestClass ]
публичен клас CalculatorTests
{
частен калкулатор калкулатор ;

[ TestInitialize ]
публичен невалиден Настройвам ( )
{
калкулатор = нов калкулатор ( ) ;
}

[ Метод на тестване ]
публичен невалиден Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
беше резултатът = калкулатор. Добавете ( 5 , 5 ) ;
Твърди. Са равни ( 10 , резултат ) ;
}

[ Метод на тестване ]
публичен невалиден Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
беше резултатът = калкулатор. Извадете ( 10 , 5 ) ;
Твърди. Са равни ( 5 , резултат ) ;
}

[ Метод на тестване ]
публичен невалиден Умножение_ДвеПоложителниЧисла_ВръщаПравиленПродукт ( )
{
беше резултатът = калкулатор. Умножете ( 5 , 5 ) ;
Твърди. Са равни ( 25 , резултат ) ;
}

[ Метод на тестване ]
[ ExpectedException ( тип ( DivideByZeroException ) ) ]
публичен невалиден Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
беше резултатът = калкулатор. Разделям ( 5 , 0 ) ;
}

[ Метод на тестване ]
публичен невалиден Разделяне_ДвеПоложителниЧисла_Връща ПравилноКолично ( )
{
беше резултатът = калкулатор. Разделям ( 10 , 5 ) ;
Твърди. Са равни ( 2 , резултат ) ;
}
}
}

Заключение

Това е основен урок, който обхваща основите на модулното тестване в C# с помощта на рамката MSTest.