C #. Пример за создавање на единица тест во MS Visual Studio

  1. Содржината
  2. Извршување
  3. 2. Подготовка на текстот на модулот Program.cs
  4. 2.2. Направете ја програмата класа јавна
  5. 3. Листата на тестираната програма
  6. 4. Креирање на тест
  7. 4.1. Додавање на нов проект на решението
  8. 4.2. Структура на решение
  9. 4.3. Текстот на датотеката "UnitTest1.cs". Атрибути [TestMethod] и [TestClass]
  10. 4.4. Изработка на промени во текстот на модулот UnitTest1. Промена на името на методот за тестирање
  11. 4.5. Поврзување на проектот MinApp со проектот TestMinApp
  12. 4.6. Изработка на промени во текстот на модулот UnitTest1.cs
  13. 4.6.2. Текст на методот TestMin ()
  14. 4.7. Текст на модулот UnitTest1.cs
  15. 5. Стартувајте го тестот и проверете го резултатот од тестот
  16. 6. Резултатот. Интеракција помеѓу проекти

Оваа тема го опишува процесот чекор-по-чекор за создавање на едноставен единичен тест во Microsoft Visual Studio 2010 (C #) за некоја апликација како Конзола апликација. Користејќи го овој пример, можете да научите како да креирате сопствени Единечни тестови. Примерот, исто така, ја демонстрира употребата на класата Assert за тестирање на функционирањето на функциите.

Содржината

Состојбата на проблемот

За апликација како Конзола апликација, развиј Единечен тест кој ја тестира работата на функцијата Min (), која го одредува максималниот елемент од три броја.

За функцијата Min (), поставете го методот на тестирање на TestMin (). Проверете ја функцијата.

Извршување

1. Креирајте апликација користејќи го Конзолниот апликациски образец

За извршување на MS Visual Studio 2010 За да креирате проект користејќи ја моделот Конзола апликација, мора да се повика следнава низа команди:

Датотека -> Нов -> Проект ...

Како резултат на тоа се отвора прозорецот New Project. Во прозорецот, изберете го шаблонот за апликација конзола како што е прикажано на Слика 1. Шаблонот е избран во табулаторот Visual C #.

Visual C # -> конзола апликација

Visual C # -> конзола апликација

Сл. 1. Прозорец "Нов проект". Избор на апликација за апликација за конзола

2. Подготовка на текстот на модулот Program.cs

2.1. Додај Min () функцијата за да модулира текст

Во телото на програмата класа, додадете текст на функцијата Min ().

Функцијата е објавена како јавна (статична) и јавна. Мин () функциски текст

public static int Min (int a, int b, int c) {int min = a; ако (min> b) min = b; ако (min> c) min = c; враќање min; }

public static int Min (int a, int b, int c) {int min = a;  ако (min> b) min = b;  ако (min> c) min = c;  враќање min;  }

Сл. 2. Поглед на прозорецот MS Visual Studio 2010, модул "Program.cs"

2.2. Направете ја програмата класа јавна

За да имате пристап до функцијата Min () на класата Програма, треба да ја направите оваа класа јавно достапна. За да го направите ова, пред да објавите класа, треба да го дефинирате јавниот клучен збор.

... именски простор MinApp {јавна класа програма {// класа методи // ...}} ...

После тоа, програмата за тестирање е подготвена.

3. Листата на тестираната програма

Во моментов, листата на тестираната програма е следна:

користење на систем; користејќи System.Collections.Generic; користејќи System.Linq; користејќи System.Text; именски простор MinApp {јавна класа Програма {јавна статичка int Min (int a, int b, int c) {int min = a; ако (min> b) min = b; ако (min> c) min = c; враќање min; } статичка празнина Main (string [] args) {Console.WriteLine ("Демо на единица за тестирање во C #."); }}}

Бидејќи оваа програма ќе биде тестирана од друг модул за тестирање, нема потреба да внесувате ништо друго во функцијата Main (). Бидејќи, во согласност со состојбата на проблемот, треба да ја тестирате работата на функцијата Min (). И ова ќе биде направено од тестирачкиот модул. Во моментот, нашата програма е подготвена за тестирање.

4. Креирање на тест

Тестот е креиран со посебен проект (проект) во решението (Решение). Програмата што се тестира не знае за тоа. Програмата која ќе тестира (програмата за тестирање) ќе ги повика функциите на програмата што се тестира. Во нашиот случај, програмата за тестирање ќе ја повика функцијата

int Min (int, int, int);

4.1. Додавање на нов проект на решението

За ова решение (решение) треба да додадете нов проект користејќи ја командата

Датотека-> Додај-> Нов проект ...

Прозорецот за креирање на нов проект е прикажан на Слика 3.

Сл. 3. Прозорец за создавање на проект од типот Тест проект

Во прозорецот се избира група на Visual C # templates -> Test. Од прикажаните шаблони е избран шаблонот на проектот "Тест проект". Во полето "Име" е означено името на проектот што ќе ја тестира нашата програма. Треба да поставите, на пример, TestMinApp. Проектот се наоѓа во посебна папка "E: \ Test \ MinApp".

Проектот се наоѓа во посебна папка E: \ Test \ MinApp

Сл. 4. Текстот на модулот UnitTest1.cs. Прозорецот за помош на Explorer Explorer со прикажани проекти од TestMinApp и MinApp

4.2. Структура на решение

Како што може да се види од Слика 4, алатката Solution Explorer ја прикажува структурата на Solution Items, која содржи два проекта:

  • проект MinApp. Ова е проект креиран со користење на шаблонот за апликација конзола со функцијата Min () која сакате да протестирате;
  • Проект TestMinApp. Овој проект е дизајниран да ги тестира карактеристиките на проектот MinApp. Програмскиот код кој ја тестира функцијата Min () ќе биде внесен во проектната датотека UnitTest1 на проектот TestMinApp.

И двата проекти можат да се вршат независно еден од друг.

4.3. Текстот на датотеката "UnitTest1.cs". Атрибути [TestMethod] и [TestClass]

Во проектот TestMinApp, тест-датотеката UnitTest1.cs е од примарен интерес. Оваа датотека содржи методи кои ќе ги тестираат функциите на проектот MinApp. Проектот TestMinApp може да содржи било кој број на датотеки кои содржат тестови (на пример, UnitTest2.cs, UnitTest3.cs, итн.).

Листата на датотеката UnitTest1.cs генерирана од MS Visual Studio 2010 е како што следува:

користење на систем; користејќи System.Text; користејќи System.Collections.Generic; користејќи System.Linq; користејќи Microsoft.VisualStudio.TestTools.UnitTesting; Именски простор TestMinApp {/// <резиме> /// Опис на краток преглед за UnitTest1 /// </ summary> [TestClass] јавна класа UnitTest1 {public UnitTest1 () {// // TODO: Додади логика на конструктор тука //} приватен TestContext testContextInstance; /// <summary> /// Го добива или поставува тестот. /// </ резиме> јавен ТестКонтекст ТестКонтекст {get {return testContextInstance; } во собата {testContextInstance = вредност; }} #region Дополнителни атрибути за тестирање // можете да ги користите вашите тестови // // Користете ClassInitialize // [ClassInitialize ()] // јавна статична празнина MyClassInitialize (TestContext testContext) {} // // Користете ClassCleanup за да го извршите кодот откако сите тестови во класата се извршуваат // [ClassCleanup ()] / public static void MyClassCleanup () {} // // Користете TestInitialize да се изврши кодот пред да се изврши секој тест // [TestInitialize ()] / / public void MyTestInitialize () {} // // Користете TestCleanup ) {} // #endregion [TestMethod] јавна празнина TestMethod1 () {// // TODO: Додајте тест логика тука} /}

Како што може да се види од горенаведениот код, датотеката содржи класа со име UnitTest1. Класата има јавен метод наречен TestMethod1 (). Пред да се спроведе методот TestMethod1 (), се става атрибутот [TestMethod]. Ова значи дека треба да го внесете кодот кој ќе ги тестира функциите на MinApp проектот во телото на методот.

Во класата, можете да внесете било кој број на методи кои ќе тестираат различни функции од различни модули. Главната работа е дека овие методи се означени со атрибутот [TestMethod].

4.4. Изработка на промени во текстот на модулот UnitTest1. Промена на името на методот за тестирање

Можете да ги промените имињата на методите и да додадете нови методи кои се обележани со атрибутот [TestMethod] во модулот UnitTest1.cs. Со оглед на ова, во текстот на модулот UnitTest1.cs, треба да го преименувате методот TestMethod1 () на TestMin ().

Откако ќе се направат промените, скратениот текст на модулот од датотеката UnitTest1.cs ќе биде:

користење на систем; користејќи System.Text; користејќи System.Collections.Generic; користејќи System.Linq; користејќи Microsoft.VisualStudio.TestTools.UnitTesting; Именски простор TestMinApp {/// <summary> /// Опис на краток преглед за UnitTest1 /// </ summary> [TestClass] јавна класа UnitTest1 {... [TestMethod] public void TestMin () {// // TODO: Додади тест логика тука //}}}

4.5. Поврзување на проектот MinApp со проектот TestMinApp

За да имате пристап до функцијата Min () (проект MinApp) од проектот TestMinApp, треба да го поврзете именскиот простор во кој се наоѓа оваа функција.

За да го направите ова, пред сè, треба да го повикате контекстното мени за проектот TestMinApp. Потоа во контекстното мени треба да ја повикате командата "Додај референца ..." (Слика 5).

 (Слика 5)

Сл. 5. Тимот "Додај референца ..."

Како резултат на тоа, ќе се отвори прозорецот Add Reference, во кој треба да го изберете MinApp проектот.

Сл. 6. Прозорец "Додај референца". Поврзување на проектот MinApp

По завршените активности, функциите на проектот MinApp ќе бидат достапни за користење во проектот TestMinApp.

По завршените активности, функциите на проектот MinApp ќе бидат достапни за користење во проектот TestMinApp

Сл. 7. Референци јазиче со поврзани MinApp проект

4.6. Изработка на промени во текстот на модулот UnitTest1.cs
4.6.1. Додавање на именскиот простор на MinApp во модулот UnitTest1.cs

Во овој чекор, во модулот UnitTest1.cs, треба да го додадете именскиот простор на MinApp користејќи ја директивата за користење:

користење на систем; користејќи System.Text; користејќи System.Collections.Generic; користејќи System.Linq; користејќи Microsoft.VisualStudio.TestTools.UnitTesting; користење на MinApp; именски простор TestMinApp {...}

4.6.2. Текст на методот TestMin ()

Во текстот на методот TestMin (), внесете го следниов код:

... [TestMethod] public void TestMin () {// // TODO: Додајте тест логика тука // int min; min = програма. мин (3, 4, 5); Утврди. Однократно (2, мин.); } ...

4.7. Текст на модулот UnitTest1.cs

Текстот на целиот UnitTest1.cs модул е ​​како што следува:

користење на систем; користејќи System.Text; користејќи System.Collections.Generic; користејќи System.Linq; користејќи Microsoft.VisualStudio.TestTools.UnitTesting; користење на MinApp; Именски простор TestMinApp {/// <резиме> /// Опис на краток преглед за UnitTest1 /// </ summary> [TestClass] јавна класа UnitTest1 {public UnitTest1 () {// // TODO: Додади логика на конструктор тука //} приватен TestContext testContextInstance; /// <summary> /// Го добива или поставува тестот. /// </ резиме> јавен ТестКонтекст ТестКонтекст {get {return testContextInstance; } во собата {testContextInstance = вредност; }} #region Дополнителни атрибути за тестирање // можете да ги користите вашите тестови // // Користете ClassInitialize // [ClassInitialize ()] // јавна статична празнина MyClassInitialize (TestContext testContext) {} // // Користете ClassCleanup за да го извршите кодот откако сите тестови во класата се извршуваат // [ClassCleanup ()] / public static void MyClassCleanup () {} // // Користете TestInitialize да се изврши кодот пред да се изврши секој тест // [TestInitialize ()] / / public void MyTestInitialize () {} // // Користете TestCleanup ) {} // #endregion [TestMethod] јавна празнина TestMin () {// // TODO: Додајте тест логика тука // int min; min = програма. мин (3, 4, 5); Утврди. Однократно (2, мин.); }}}

5. Стартувајте го тестот и проверете го резултатот од тестот

Во Microsoft Visual Studio 2010, специјално мени за команди наречени Тест се спроведува за работа со Единица тестови.

За да извршите тест за извршување, одберете една од командите.

Тест -> Испратена -> Тестови во тековен контекст

или

Тест -> Стартувај -> Сите тестови во решение

како што е прикажано на Слика 8.

Сл. 8. Повикајте ја командата за почеток тест и прегледајте го резултатот.

По извршениот тест, резултатот може да се види на дното од прозорецот Резултати од тестот. Како што може да се види од сликата, тестот не е донесен. Ова е логично, бидејќи во функцијата Assert.AreEqual () ги споредуваме броевите 2 и 3, кои се различни. Тука, бројот 2 е посебно воведен наместо 3.

Ако наместо број 2 внесете точен одговор - број 3 (минимум помеѓу 3, 4, 5), тогаш тестот ќе биде предаден (Слика 9). Во овој случај, текстот на методот TestMin () ќе биде како што следува:

... [TestMethod] public void TestMin () {// // TODO: Додајте тест логика тука // int min; min = програма. мин (3, 4, 5); Утврди. Аекуларен (3, мин); } ...

Прозорецот за резултати е прикажан на Слика 9.

Сл. 9. Резултат од тестот за случајот, ако внесете точен одговор

Сега можеме да заклучиме дека функцијата Min () за овој случај работи правилно.

6. Резултатот. Интеракција помеѓу проекти

Во овој труд, во решението се формираат два проекти. Еден проект MinApp ја содржи функцијата Min () која сакате да ја тестирате. Вториот проект, TestMinApp, содржи методи на тестирање.

Во Microsoft Visual Studio 2010, секој проект се стартува со користење на различни команди на менито. Значи, проектот MinApp е стартуван на стандарден начин од Run менито. И проектот TestMinApp е лансиран од специјалното мени за тестирање.

Поврзани теми