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. Нәтиже. Жобалар арасындағы өзара әрекеттесу

Бұл бөлімде Console Application сияқты қосымша үшін Microsoft Visual Studio 2010 (C #) бағдарламасында қарапайым бірлік сынағын жасаудың қадамдық процесі сипатталады. Осы мысалды пайдалана отырып, өзіңіздің Бірлік сынақтарыңызды қалай жасау керектігін білуге ​​болады. Мысал сондай-ақ функцияның жұмысын тексеру үшін Assert сыныбын пайдалануды көрсетеді.

Мазмұн

Мәселенің жай-күйі

Console Application сияқты қосымша үшін, үш санның ең үлкен элементін анықтайтын Min () функциясының жұмысын тексеретін Unit test құралын жасаңыз.

Мин () функциясы үшін TestMin () сынау әдісін орнатыңыз. Функцияны тексеріңіз.

Орындау

1. Console Applicaiton үлгісін қолдану арқылы бағдарламаны жасаңыз

MS Visual Studio 2010 бағдарламасын іске қосу үшін іске қосыңыз.Сондайтын консольдық қосымшаны пайдалана отырып, жобаны жасау үшін командалардың келесі тізбегі шақырылуы керек:

Файл -> Жаңа -> Жоба ...

Нәтижесінде Жаңа жоба терезесі ашылады. Терезеде 1-суретте көрсетілгендей консол қосымшасының үлгісін таңдаңыз. Үлгі Visual C # қойындысында таңдалады.

Visual C # -> консольдық бағдарлама

Visual C # -> консольдық бағдарлама

Сур. 1. «Жаңа жоба» терезесі. Консольдық бағдарлама түрін қолдануды таңдау

2. Program.cs модулінің мәтінін дайындау

2.1. Модуль мәтініне Мин () функциясын қосыңыз

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 {public class бағдарламасы {// class methods // ...}} ...

Осыдан кейін сынақ бағдарламасы дайын.

3. Тексерілген бағдарламаның листингі

Қазіргі уақытта тестілеуден өткен бағдарламаның тізімі:

Жүйені пайдалану; System.Collections.Generic арқылы; System.Linq пайдалану; System.Text пайдалану; аттар кеңістігі MinApp {public class бағдарламасы {public static int Min (int a, int b, int c) {int min = a; егер (min> b) min = b; егер (min> c) min = c; қайтару min; } static void Негізгі (string [] args) {Console.WriteLine («C # ішіндегі Unit-тестілеу демонстрациясы»); }}}

Бұл бағдарлама басқа тестілеу модулінен тестіленгендіктен, Main () функциясында ештеңе енгізудің қажеті жоқ. Себебі, мәселенің күйіне сәйкес Min () функциясының жұмысын тексеру қажет. Бұл тестілеу модулінен жасалады. Қазіргі уақытта біздің бағдарламамыз тестілеуге дайын.

4. Тест жасау

Сынақ шешуде жеке жоба (жоба) арқылы жасалады (Solution). Сыналған бағдарлама бұл туралы білмейді. Тестілеу бағдарламасы (тестілеу бағдарламасы) тексерілетін бағдарламаның функцияларын шақырады. Біздің жағдайда тестілік бағдарлама функцияны шақырады

int Min (int, int, int);

4.1. Шешімге жаңа жоба қосу

Бұл шешім үшін (Solution) пәрменді пайдаланып, жаңа жоба қосуыңыз керек

Файл-> Қосу-> Жаңа жоба ...

Жаңа жобаны құру терезесі 3-суретте көрсетілген.

Сур. 3. Сынақ жобасының түрін жасау үшін терезе

Терезеде Visual C # үлгілер тобы -> Сынақ таңдалады. Көрсетілген үлгілерден «Project Project» жобасының үлгісі таңдалған. «Аты» жолағында біздің бағдарламаны тексеретін жобаның атауы көрсетіледі. Мысалы, TestMinApp параметрін орнату керек. Жоба «E: \ Test \ MinApp» жеке қалтасында орналасқан.

Жоба «E: \ Test \ MinApp» жеке қалтасында орналасқан

Сур. 4. UnitTest1.cs модулінің мәтіні. TestMinApp және MinApp жобалары бар Solution Explorer шолғышының терезесі көрсетіледі

4.2. Шешім құрылымы

4-суретте көрсетілгендей, Solution Explorer шолушысы екі жобаны қамтитын «Шешім элементтерінің» құрылымын көрсетеді:

  • MinApp жобасы. Бұл наразылық білдіргіңіз келетін Min () функциясымен Console Application үлгісін қолданып жасалған жоба;
  • TestMinApp жобасы. Бұл жоба MinApp жобасының мүмкіндіктерін тексеруге арналған. Min () функциясын тексеретін бағдарлама коды TestMinApp жобасының UnitTest1 жобасының файлына енгізіледі.

Екі жоба да бір-біріне қарамастан жүзеге асырылуы мүмкін.

4.3. «UnitTest1.cs» файлының мәтіні. Атрибуттар [TestMethod] және [TestClass]

TestMinApp жобасында UnitTest1.cs сынақ файлы басымдыққа ие. Бұл файл MinApp жобасының функцияларын тексеретін әдістерді қамтиды. TestMinApp жобасы сынақтардан тұратын кез-келген файлдарды қамтуы мүмкін (мысалы, UnitTest2.cs, UnitTest3.cs және т.б.).

MS Visual Studio 2010 шығарған UnitTest1.cs файлының тізімі төмендегідей:

Жүйені пайдалану; System.Text пайдалану; System.Collections.Generic арқылы; System.Linq пайдалану; Microsoft.VisualStudio.TestTools.UnitTesting арқылы; classText1 () {// PublicTest1 () {// // TODO: конструктор логикасын қосыңыз // // жеке TestContext testContextInstance; /// <summary> /// Сынақ контекстін алады немесе орнатады. /// </ summary> public TestContext TestContext {get {return testContextInstance; } set {testContextInstance = value; }} #region Қосымша сынақ атрибуттары // сіздің сынақтарыңызды пайдалана аласыз // // Use ClassInitialize // [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {} // // Класта барлық сынақтардан кейін кодты іске қосу үшін ClassCleanup пайдаланыңыз // [ClassCleanup ()] // public static void MyClassCleanup () {} // // Use TestInitialize әрбір сынақты іске қосқаннан кейін кодты іске қосу үшін // [TestInitialize ()] // public void MyTestInitialize () {} // // Әрбір сынақ аяқталғаннан кейін кодты іске қосу үшін TestCleanup пайдаланыңыз // [TestCleanup ()] // public void MyTestCleanup ( ) {// // #endregion [TestMethod] public void TestMethod1 () {// TODO: мұнда сынақ логикасын қосыңыз //}}}

Жоғарыда көрсетілген кодтан көруге болады, файлда UnitTest1 деп аталатын сынып бар. Класс TestMethod1 () атты жалпыға ортақ әдіске ие. TestMethod1 () әдісін қолданбас бұрын, [TestMethod] төлсипаты орналастырылған. Бұл дегеніміз, MinApp жобасының функцияларын әдістердің корпусында тексеретін кодты енгізу керек.

Сыныпта түрлі модульдерден әртүрлі функцияларды сынайтын әдістердің кез келген санын енгізуге болады. Ең бастысы, бұл әдістер [TestMethod] төлсипатымен белгіленген.

4.4. UnitTest1 модулінің мәтініне өзгерістер енгізу. Сынақ әдісінің атауын өзгерту

Әдістер атауларын өзгертуге және UnitTest1.cs модуліндегі [TestMethod] төлсипатымен белгіленген жаңа әдістерді қосуға болады. Бұл ескере отырып, UnitTest1.cs модулінің мәтінінде TestMethod1 () әдісін TestMin () деп атауыңыз керек.

Өзгерістер енгізілгеннен кейін UnitTest1.cs файлының модулінің қысқартылған мәтіні болады:

Жүйені пайдалану; System.Text пайдалану; System.Collections.Generic арқылы; System.Linq пайдалану; Microsoft.VisualStudio.TestTools.UnitTesting арқылы; аттар кеңістігі TestMinApp {/// <summary> /// UnitTest1 /// </ summary> [TestClass] public class сыныбының қысқаша сипаттамасы UnitTest1 {... [TestMethod] public void TestMin () {// // TODO: Сынақты қосу мұнда логика //}}}

4.5. MinApp жобасын TestMinApp жобасына қосу

TestMinApp жобасынан Min () функциясына (MinApp жобасы) қатынасу үшін осы функция орналасқан аттар кеңістігін қосу керек.

Мұны істеу үшін, ең алдымен, TestMinApp жобасының мәтінмәндік мәзіріне қоңырау шалу керек. Содан кейін контекстік мәзірде «Қосымшаны қосу ...» пәрменін шақыру қажет (5-сурет).

» пәрменін шақыру қажет (5-сурет)

Сур. 5. «Сілтеме қосу ...» тобы

Соның салдарынан, Қосымшаны қосу терезесі ашылады, онда 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); Assert (2, min); } ...

4.7. UnitTest1.cs модулінің мәтіні

Барлық UnitTest1.cs модулінің мәтіні келесідей:

Жүйені пайдалану; System.Text пайдалану; System.Collections.Generic арқылы; System.Linq пайдалану; Microsoft.VisualStudio.TestTools.UnitTesting арқылы; MinApp көмегімен; classText1 () {// PublicTest1 () {// // TODO: конструктор логикасын қосыңыз // // жеке TestContext testContextInstance; /// <summary> /// Сынақ контекстін алады немесе орнатады. /// </ summary> public TestContext TestContext {get {return testContextInstance; } set {testContextInstance = value; }} #region Қосымша сынақ атрибуттары // сіздің сынақтарыңызды пайдалана аласыз // // Use ClassInitialize // [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {} // // Класта барлық сынақтардан кейін кодты іске қосу үшін ClassCleanup пайдаланыңыз // [ClassCleanup ()] // public static void MyClassCleanup () {} // // Use TestInitialize әрбір сынақты іске қосқаннан кейін кодты іске қосу үшін // [TestInitialize ()] // public void MyTestInitialize () {} // // Әрбір сынақ аяқталғаннан кейін кодты іске қосу үшін TestCleanup пайдаланыңыз // [TestCleanup ()] // public void MyTestCleanup ( ) {// // #endregion [TestMethod] public void TestMin () {// TODO: мұнда сынақ логикасын қосыңыз // int min; min = Бағдарлама. (3, 4, 5); Assert (2, min); }}}

5. Сынақты іске қосып, сынақ нәтижесін тексеріңіз

Microsoft Visual Studio 2010 бағдарламасында Unit сынақтарымен жұмыс істеу үшін Test деп аталатын арнайы командасы бар.

Орындауды тексеруді орындау үшін, пәрмендердің біреуін таңдаңыз.

Тест -> Іске қосу -> Ағымдағы контексттегі сынақтар

немесе

Тест -> Run -> All Tests in Solution

8-суретте көрсетілгендей.

Сур. 8. Бастапқы тест тапсырмасын шақыру және нәтижені көру.

Сынақты өткізгеннен кейін, нәтиже Тест нәтижелерінің терезесінің төменгі жағында көрінеді. Суреттен көрініп тұрғандай, сынақ өткізілмейді. Бұл қисынды, өйткені Assert.AreEqual () функциясында біз әртүрлі 2 және 3 сандарын салыстырамыз. Мұнда 2 нөмір 2-нің орнына арнайы енгізілген.

Егер 2-нөмірдің орнына дұрыс жауапты енгізсеңіз - 3-нөмір (3, 4, 5-ке дейін), тест тапсырылады (9-сурет). Бұл жағдайда TestMin () әдісінің мәтіні келесідей болады:

... [TestMethod] public void TestMin () {// TODO: мұнда сынақ логикасын қосыңыз // int min; min = Бағдарлама. (3, 4, 5); Assert (3, min); } ...

Нәтиже терезесі 9-суретте көрсетілген.

Сур. 9. Егер сіз дұрыс жауапты енгізсеңіз, іс бойынша тест нәтижесі

Енді біз бұл істің Min () функциясы дұрыс жұмыс жасайтынын білеміз.

6. Нәтиже. Жобалар арасындағы өзара әрекеттесу

Осы мақалада шешімде екі жоба құрылады. Бір MinApp жобасы Min () функциясын сынағыңыз келетінін қамтиды. Екінші жоба, TestMinApp, сынау әдістерін қамтиды.

Microsoft Visual Studio 2010 бағдарламасында әр жоба әртүрлі мәзір пәрмендері арқылы іске қосылады. Осылайша, MinApp жобасы іске қосу мәзірінен стандартты түрде іске қосылады. TestMinApp жобасы арнайы сынақ мәзірінен іске қосылады.

Тақырыптар