Jak pisać testy jednostkowe w języku C#, aby uzyskać lepszą jakość kodu

Jak Pisac Testy Jednostkowe W Jezyku C Aby Uzyskac Lepsza Jakosc Kodu



Kiedy większość z nas zaczyna jako programiści, prawie nie myślimy o testach jednostkowych ani nie poświęcamy dużo czasu. Jednak gdy znajdziesz się w bardziej złożonym i współdzielonym środowisku repozytorium, coraz ważniejsze staje się przetestowanie kodu przed wdrożeniem go w środowisku produkcyjnym.

Dlatego istotne jest, aby opanować podstawy testów jednostkowych na wczesnym etapie programowania, aby uniknąć konieczności uczenia się podczas pracy z rozbudowanymi bazami kodu.

W tym samouczku wprowadzimy Cię w środowisko testów jednostkowych przy użyciu języka C# i biblioteki testowej MSTest. Zbudujemy podstawową aplikację, która pozwoli Ci dowiedzieć się, jak tworzyć testy jednostkowe, jak je uruchamiać i jak interpretować wyniki w przypadku niepowodzenia lub powodzenia testu.







Środowisko testowe

Zacznijmy od omówienia rozwiązania testowego i konfiguracji naszej podstawowej aplikacji.



Aby śledzić i replikować aplikację opisaną w tym samouczku, upewnij się, że posiadasz następujące elementy:



  1. Zainstalowano Visual Studio
  2. Skonfigurowane narzędzia .NET i C# na Twojej maszynie

Utwórz aplikację

Następnie otwórz Visual Studio i utwórz nowe rozwiązanie. Na potrzeby tego samouczka stworzymy podstawową aplikację kalkulatora. Możesz nadać aplikacji dowolną nazwę.





Następnie utwórz nowy projekt i wybierz typ projektu jako Projekt testowy MSTest i nadaj mu dowolną nazwę.



Pamiętaj, aby wybrać „Dodaj do rozwiązania” i wybrać wcześniej utworzoną aplikację.

Powinieneś mieć główną aplikację i projekt testów jednostkowych, jak pokazano w eksploratorze rozwiązań.

Napisz kod aplikacji Kalkulator

Kolejnym krokiem jest napisanie kodu naszej aplikacji kalkulatora. Możemy to zrobić w pliku „program.cs” CalcApp.

Ponieważ szukamy podstawowej funkcjonalności, możemy dodać kod źródłowy w następujący sposób:

Kalkulator klasy publicznej
{
publiczny podwójnie Dodać ( podwójnie A , podwójnie B )
{
powrót A + B ;
}

publiczny podwójnie Odejmować ( podwójnie A , podwójnie B )
{
powrót A - B ;
}

publiczny podwójnie Zwielokrotniać ( podwójnie A , podwójnie B )
{
powrót A * B ;
}

publiczny podwójnie Dzielić ( podwójnie A , podwójnie B )
{
Jeśli ( B == 0 )
rzuć nowy wyjątek DivideByZeroException ( ) ;
powrót A / B ;
}
}

Jak można się domyślić, poprzedni kod tworzy aplikację kalkulatora, która może wykonywać podstawowe zadania arytmetyczne.

Napisz testy jednostkowe

Kiedy już skończymy, możemy napisać testy jednostkowe dla klasy „Kalkulator”. W tym przypadku wystarczy, że zapiszemy testy w pliku „UnitTest” projektu w następujący sposób:

za pomocą Systemu ;

przestrzeń nazw CalcApp
{
Kalkulator klasy publicznej
{
publiczny podwójnie Dodać ( podwójnie A , podwójnie B )
{
powrót A + B ;
}

publiczny podwójnie Odejmować ( podwójnie A , podwójnie B )
{
powrót A - B ;
}

publiczny podwójnie Zwielokrotniać ( podwójnie A , podwójnie B )
{
powrót A * B ;
}

publiczny podwójnie Dzielić ( podwójnie A , podwójnie B )
{
Jeśli ( B == 0 )
rzuć nowy wyjątek DivideByZeroException ( ) ;
powrót A / B ;
}
}
}

przestrzeń nazw CalcTest
{
[ Klasa testowa ]
Testy kalkulatora klasy publicznej
{
prywatny kalkulator kalkulator ;

[ Zainicjuj test ]
publiczny próżnia Organizować coś ( )
{
kalkulator = nowy kalkulator ( ) ;
}

[ Metoda badania ]
publiczny próżnia Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
był rezultat = kalkulator. Dodać ( 5 , 5 ) ;
Zapewniać. Są równe ( 10 , wynik ) ;
}

[ Metoda badania ]
publiczny próżnia Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
był rezultat = kalkulator. Odejmować ( 10 , 5 ) ;
Zapewniać. Są równe ( 5 , wynik ) ;
}

[ Metoda badania ]
publiczny próżnia Multiply_TwoPositiveNumbers_ReturnsCorrectProduct ( )
{
był rezultat = kalkulator. Zwielokrotniać ( 5 , 5 ) ;
Zapewniać. Są równe ( 25 , wynik ) ;
}

[ Metoda badania ]
[ Oczekiwany wyjątek ( typ ( Wyjątek DivideByZero ) ) ]
publiczny próżnia Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
był rezultat = kalkulator. Dzielić ( 5 , 0 ) ;
}

[ Metoda badania ]
publiczny próżnia Divide_TwoPositiveNumbers_ReturnsCorrectQuotient ( )
{
był rezultat = kalkulator. Dzielić ( 10 , 5 ) ;
Zapewniać. Są równe ( 2 , wynik ) ;
}
}
}

Wniosek

To jest podstawowy samouczek, który omawia podstawy testów jednostkowych w języku C# przy użyciu platformy MSTest.