Как писать модульные тесты на C# для повышения качества кода

Kak Pisat Modul Nye Testy Na C Dla Povysenia Kacestva Koda



Когда большинство из нас начинают свою карьеру в качестве разработчиков, мы почти не думаем и не уделяем много времени модульному тестированию. Однако когда вы попадаете в более сложную и общую среду репозитория, становится все более важным тестировать код перед его развертыванием в рабочей среде.

Поэтому очень важно освоить основы модульного тестирования на ранних этапах разработки, чтобы избежать необходимости обучения при работе с обширными базами кода.

В этом руководстве мы познакомим вас со структурой модульного тестирования с использованием C# и библиотеки тестирования MSTest. Мы создадим базовое приложение, которое позволит вам научиться создавать модульные тесты, как их запускать и как интерпретировать результаты неудачного или успешного теста.







Тестовая среда

Давайте начнем с обсуждения тестового решения и настройки нашего базового приложения.



Чтобы следовать и копировать приложение из этого руководства, убедитесь, что у вас есть следующее:



  1. Установленная Visual Studio
  2. На вашем компьютере настроены инструменты .NET и C#.

Создать заявку

Затем откройте Visual Studio и создайте новое решение. В этом уроке мы создадим базовое приложение-калькулятор. Вы можете дать приложению любое имя по вашему желанию.





Затем создайте новый проект, выберите тип проекта «Тестовый проект MSTest» и дайте ему любое желаемое имя.



Обязательно выберите «Добавить в решение» и выберите ранее созданное приложение.

У вас должно быть основное приложение и проект модульного тестирования, как показано в обозревателе решений.

Напишите код приложения-калькулятора

Следующий шаг — написание кода нашего приложения-калькулятора. Мы можем сделать это в файле CalcApp «program.cs».

Поскольку нам нужна базовая функциональность, мы можем добавить исходный код следующим образом:

Калькулятор общественного класса
{
общественный двойной Добавлять ( двойной а , двойной б )
{
возвращаться а + б ;
}

общественный двойной Вычесть ( двойной а , двойной б )
{
возвращаться а - б ;
}

общественный двойной Умножить ( двойной а , двойной б )
{
возвращаться а * б ;
}

общественный двойной Разделять ( двойной а , двойной б )
{
если ( б == 0 )
выбросить новое исключение DivideByZeroException ( ) ;
возвращаться а / б ;
}
}

Как вы можете догадаться, предыдущий код создает приложение-калькулятор, которое может выполнять основные арифметические действия.

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

Закончив, мы можем написать модульные тесты для класса «Калькулятор». В этом случае все, что нам нужно сделать, это записать тесты в файл «UnitTest» проекта следующим образом:

используя систему ;

пространство имен CalcApp
{
Калькулятор общественного класса
{
общественный двойной Добавлять ( двойной а , двойной б )
{
возвращаться а + б ;
}

общественный двойной Вычесть ( двойной а , двойной б )
{
возвращаться а - б ;
}

общественный двойной Умножить ( двойной а , двойной б )
{
возвращаться а * б ;
}

общественный двойной Разделять ( двойной а , двойной б )
{
если ( б == 0 )
выбросить новое исключение DivideByZeroException ( ) ;
возвращаться а / б ;
}
}
}

пространство имен CalcTest
{
[ ТестКласс ]
публичный класс CalculatorTests
{
частный калькулятор калькулятор ;

[ ТестИнициализировать ]
общественный пустота Настраивать ( )
{
калькулятор '=' новый калькулятор ( ) ;
}

[ Метод испытания ]
общественный пустота Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
был результат '=' калькулятор. Добавлять ( 5 , 5 ) ;
Утверждать. Равны ( 10 , результат ) ;
}

[ Метод испытания ]
общественный пустота Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
был результат '=' калькулятор. Вычесть ( 10 , 5 ) ;
Утверждать. Равны ( 5 , результат ) ;
}

[ Метод испытания ]
общественный пустота Multiply_TwoPositiveNumbers_ReturnsCorrectProduct ( )
{
был результат '=' калькулятор. Умножить ( 5 , 5 ) ;
Утверждать. Равны ( 25 , результат ) ;
}

[ Метод испытания ]
[ Ожидаемое исключение ( тип ( DivideByZeroException ) ) ]
общественный пустота Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
был результат '=' калькулятор. Разделять ( 5 , 0 ) ;
}

[ Метод испытания ]
общественный пустота Divide_TwoPositiveNumbers_ReturnsCorrectQuotient ( )
{
был результат '=' калькулятор. Разделять ( 10 , 5 ) ;
Утверждать. Равны ( 2 , результат ) ;
}
}
}

Заключение

Это базовое руководство, в котором рассматриваются основы модульного тестирования на C# с использованием платформы MSTest.