ten temat opisuje krok po kroku proces tworzenia najprostszego testu jednostkowego w Microsoft Visual Studio 2010 (C#) dla aplikacji konsolowej. Korzystając z tego przykładu, możesz dowiedzieć się, jak tworzyć własne testy jednostkowe. Przykład pokazuje również, jak używać klasy Assert do testowania.

Spis Treści

  • Zadanie
  • Instrukcje
    • 1. Utwórz aplikację przy użyciu szablonu aplikacji konsolowej
    • 2. Przygotowanie tekstu programu.moduł cs
      • 2.1. Dodanie funkcji Min ()
      • 2.2. Upublicznij klasę programu
    • 3. Lista testowanego programu
    • 4. Tworzenie testu
      • 4.1. Dodanie nowego projektu do rozwiązania
      • 4.2. Struktura roztworu
      • 4.3. Kod programu ” UnitTest1.plik cs”. Atrybutów i
      • 4.4. Wprowadzanie zmian w unittest tekstu1.moduł cs. Zmiana nazwy metody badania
      • 4.5. Podłączanie projektu MinApp do projektu TestMinApp
      • 4.6. Modyfikacja UnitTest1.tekst modułu cs
        • 4.6.1. Dodawanie przestrzeni nazw MinApp do UnitTest1.cs
        • 4.6.2. Tekst metody TestMin()
      • 4.7. Tekst UnitTest1.moduł cs
    • 5. Uruchom test i sprawdź wynik testu
    • 6. Wynik. Interakcje między projektami
  • Tematy pokrewne

Szukaj w innych witrynach:

zadanie

w przypadku aplikacji typu konsola opracuj test jednostkowy, który przetestuje funkcję Min (). Dla funkcji Min() Ustaw metodę testmin (). Przetestuj wynik funkcji.

instrukcje

1. Utwórz aplikację za pomocą konsolowego szablonu aplikacji

Uruchom MS Visual Studio 2010. Aby utworzyć projekt przy użyciu szablonu aplikacji konsolowej, musisz wywołać następującą sekwencję poleceń:

File -> New -> Project...

w rezultacie otworzy się nowe okno projektu. W oknie wybierz szablon „aplikacja konsolowa”, jak pokazano na rysunku 1. Szablon jest wybierany w zakładce Visual C#.

 C#. Formularze Windows. Okno "Nowy Projekt". Wybór "aplikacji konsolowej"

Rysunek 1. Okno „Nowy Projekt”. Wybór „aplikacji konsolowej”

2. Przygotowanie tekstu programu.moduł cs

2.1. Dodawanie funkcji Min ()

w treści klasy programu musisz dodać tekst funkcji Min (). Funkcja jest zadeklarowana jako publiczna i statyczna. Tekst funkcji Min ()

C#. Okno MS Visual Studio, moduł " Program.cs"

Rysunek 2. Okno MS Visual Studio, moduł ” Program.cs”

2.2. Upublicznij klasę programu

aby uzyskać dostęp do funkcji Min() klasy programu, musisz upublicznić tę klasę. Aby to zrobić, przed deklaracją class należy ustawić słowo kluczowe public.

...namespace MinApp{ public class Program { // методы класса // ... }}...

po tym testowany program jest gotowy.

3. Lista testowanego programu

w tej chwili kod programu testowanego programu jest następujący:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace MinApp{ public class Program { public static int Min(int a, int b, int c) { int min = a; if (min > b) min = b; if (min > c) min = c; return min; } static void Main(string args) { Console.WriteLine("Demo of Unit-testing in C#."); } }}

ponieważ program ten będzie testowany z innego modułu testowego, to w funkcji Main() nie trzeba wpisywać niczego innego. Ponieważ, zgodnie z warunkami zadania, musisz przetestować działanie funkcji Min (). I to będzie już zrobione z modułu testowego. W tej chwili nasz program jest gotowy do testów.

4. Tworzenie testu

test jest tworzony przez osobny projekt w rozwiązaniu. Program, który testujesz, nie wie o tym. Program testowy, który będzie testował, wywołuje funkcje testowanego programu. W naszym przypadku program testowy wywoła funkcję

int Min(int, int, int);

4.1. Dodawanie nowego projektu do rozwiązania

w przypadku tego rozwiązania nowy projekt jest dodawany za pomocą polecenia

File->Add->New Project...

okno tworzenia nowego projektu jest pokazane na rysunku 3.

 C#. Aplikacja Windows Forms. Okno do tworzenia projektu typu Test projekt

Rysunek 3. Okno do tworzenia projektu typu Test projekt

w oknie należy wybrać grupę szablonów

Visual C# -> Test

z wyświetlonych szablonów wybrany jest szablon projektu „Test projekt”. Pole „nazwa” wskazuje nazwę projektu, który będzie testował nasz program. Musisz ustawić, na przykład, TestMinApp. Projekt znajduje się w osobnym folderze „E:\Test\MinApp”.

 C#. "UnitTest1.plik cs". Okno Eksploratora rozwiązań z projektami TestMinApp i MinApp wyświetla się

Rysunek 4. „UnitTest1.plik cs”. Okno Eksploratora rozwiązań z wyświetlanymi projektami TestMinApp i MinApp

4.2. Struktura rozwiązania

jak widać na rysunku 4, Eksplorator rozwiązania wyświetla strukturę elementów rozwiązania, która zawiera dwa projekty:

  • projekt MinApp. Jest to projekt stworzony przy użyciu szablonu „aplikacja konsolowa” z funkcją Min() do przetestowania;
  • projekt TestMinApp. Ten projekt ma na celu przetestowanie funkcji projektu MinApp. Kod programu, który testuje funkcję Min () zostanie dodany do pliku projektu UnitTest1 projektu TestMinApp.

oba projekty mogą być realizowane niezależnie od siebie.

4.3. Kod programu ” UnitTest1.plik cs”. Atrybuty i

w projekcie TestMinApp, UnitTest1.plik testowy cs jest głównym przedmiotem zainteresowania. Ten plik zawiera metody, które będą testować funkcje projektu MinApp. Projekt TestMinApp może zawierać dowolną liczbę plików zawierających testy (na przykład UnitTest2.cs, UnitTest3.cs itp.).

kod programu ” UnitTest1.plik cs”, wygenerowany przez MS Visual Studio 2010, wygląda następująco:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { public UnitTest1() { // // TODO: Add constructor logic here // } private TestContext testContextInstance; /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } #region Additional test attributes // // You can use the following additional attributes as you write your tests: // // Use ClassInitialize to run code before running the first test in the class // // public static void MyClassInitialize(TestContext testContext) { } // // Use ClassCleanup to run code after all tests in a class have run // // public static void MyClassCleanup() { } // // Use TestInitialize to run code before running each test // // public void MyTestInitialize() { } // // Use TestCleanup to run code after each test has run // // public void MyTestCleanup() { } // #endregion public void TestMethod1() { // // TODO: Add test logic here // } }}

jak widać z powyższego kodu, plik zawiera klasę o nazwie UnitTest1. Klasa zawiera publiczną metodę o nazwie TestMethod1().Przed zaimplementowaniem metody TestMethod1() atrybut jest umieszczany. Oznacza to, że w ciele metody trzeba napisać kod, który przetestuje funkcje projektu MinApp.

w klasie możesz wprowadzić dowolną liczbę metod, które będą testować różne funkcje z różnych modułów. Najważniejsze jest to, że metody te są zauważane przez atrybut .

4.4. Wprowadzanie zmian w unittest tekstu1.moduł cs. Zmiana nazwy metody testowej

można zmienić nazwy metod i dodać nowe metody, które są oznaczone atrybutem w UnitTest1.moduł cs. Mając to na uwadze, w UnitTest1.cs, metoda TestMethod1() powinna zostać zmieniona na TestMin().

po wprowadzeniu zmian skrócony tekst UnitTest1.moduł plików cs będzie wyglądał tak:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { ... public void TestMin() { // // TODO: Add test logic here // } }}

4.5. Podłączanie projektu MinApp do projektu TestMinApp

aby uzyskać dostęp do funkcji Min () (projekt MinApp) z projektu TestMinApp, musisz zamontować przestrzeń nazw, w której ta funkcja jest zadeklarowana.

aby to zrobić, musisz najpierw wywołać menu kontekstowe dla projektu TestMinApp. Następnie w menu kontekstowym należy wywołać polecenie „Add Reference …” (Rysunek 5).

 C#. Tworzenie testów jednostkowych. "Dodaj Referencje..."polecenie

Rysunek 5. Polecenie” Dodaj referencję… „

w rezultacie otworzy się okno” Dodaj referencję”, w którym wybierzesz projekt MinApp.

 C#. Unit-test wytworzenie Okna "Dodaj referencję". Połączenie projektu MinApp

Rysunek 6. Okno „Dodaj referencję”. Połączenie projektu MinApp

po wykonaniu czynności funkcje projektu MinApp będą dostępne do użycia w projekcie TestMinApp.

 C#. Aplikacja Windows Forms. Zakładka "referencje" z podłączonym projektem MinApp

Rysunek 7. Zakładka „referencje” z połączonym projektem MinApp

4.6. Modyfikacja UnitTest1.tekst modułu cs
4.6.1. Dodawanie przestrzeni nazw MinApp do UnitTest1.cs

w tym kroku musisz dodać Przestrzeń nazw MinApp do UnitTest1.cs przy użyciu dyrektywy „using”:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;using MinApp;namespace TestMinApp{ ...}

4.6.2. Tekst metody TestMin ()

w tekście metody TestMin () należy wpisać następujący kod:

...public void TestMin(){ // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(2, min);}...

4.7. Tekst UnitTest1.moduł cs

tekst wszystkich UnitTest1.moduł cs jest następujący:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;using MinApp;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { public UnitTest1() { // // TODO: Add constructor logic here // } private TestContext testContextInstance; /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } #region Additional test attributes // // You can use the following additional attributes as you write your tests: // // Use ClassInitialize to run code before running the first test in the class // // public static void MyClassInitialize(TestContext testContext) { } // // Use ClassCleanup to run code after all tests in a class have run // // public static void MyClassCleanup() { } // // Use TestInitialize to run code before running each test // // public void MyTestInitialize() { } // // Use TestCleanup to run code after each test has run // // public void MyTestCleanup() { } // #endregion public void TestMin() { // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(2, min); } }}

5. Uruchom test i sprawdź wynik testu

w Microsoft Visual Studio 2010 w przypadku testów jednostkowych zaimplementowane jest specjalne menu „Test”.

aby uruchomić test, należy wybrać jedną z komend

Test -> Run -> Tests in Current Context

lub

Test -> Run -> All Tests in Solution

, jak pokazano na rysunku 8.

 C#. Tworzenie testów jednostkowych. Wywołanie polecenia test i wyświetlenie wyniku

Rysunek 8. Wywołanie polecenia test i wyświetlenie wyniku

po uruchomieniu testu wynik można wyświetlić po lewej stronie w oknie Eksploratora testowego. Jak widać na rysunku 8, test nie został zaliczony. Jest to logiczne, ponieważ w funkcji Assert.AreEqual() porównujemy liczby 2 i 3, które są różne. Tutaj zamiast liczby 3 wpisuje się specjalnie liczbę 2.

jeśli zamiast cyfry 2 podasz poprawną odpowiedź – cyfrę 3 (minimum między 3, 4, 5), to zostanie złożony test (rys. 9). W tym przypadku tekst metody TestMin() będzie wyglądał następująco:

...public void TestMin(){ // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(3, min);}...

okno wyników pokazano na rysunku 9.

 C#. Tworzenie testów jednostkowych. Wynik testu dla Przypadku, Gdy wpiszesz poprawną odpowiedź

Rysunek 9. Wynik testu dla Przypadku Gdy wpiszesz poprawną odpowiedź

teraz możemy stwierdzić, że funkcja Min() działa poprawnie w tym przypadku.

6. Wynik. Interakcja między projektami

w tym zadaniu rozwiązanie obejmuje dwa projekty. Jeden projekt MinApp zawiera funkcję Min () do przetestowania. Drugi projekt TestMinApp zawiera metody testowe. W Microsoft Visual Studio 2010 każdy z projektów jest uruchamiany za pomocą różnych poleceń menu. Tak więc projekt MinApp jest uruchamiany w standardowy sposób z menu Uruchom. Projekt TestMinApp jest uruchamiany ze specjalnego menu „Test”.

Leave a comment

Twój adres e-mail nie zostanie opublikowany.