C #. MS Visual Studio бир Unit-тест түзүү үлгүсү

  1. ыраазы
  2. аткаруу
  3. 2. Program.cs тексттин модулу
  4. 2.2. класс программасы коомчулукка Make (мамлекеттик)
  5. 3. тест программасынын Жарнак
  6. 4. тест түзүү
  7. 4.1. чечүү үчүн жаңы долбоор кошуу
  8. 4.2. чечимдерди түзүмү
  9. 4.3. Текст "UnitTest1.cs" сааты. Касиет-сапаттары [TestMethod] жана [TestClass]
  10. 4.4. текст UnitTest1 модул ичинде өзгөртүүлөрдү киргизүү. тестирлөө ыкмасы атын өзгөртүү
  11. 4.5. Туташуу TestMinApp үчүн MinApp долбоору
  12. 4.6. текст модулу UnitTest1.cs өзгөртүүлөр
  13. 4.6.2. Текст TestMin () ыкмасы
  14. 4.7. Текст UnitTest1.cs модулу
  15. 5. тест жыйынтыгы ишке ашыруу жана текшерүү боюнча тест Running
  16. 6. Жыйынтык. долбоорлордун ортосундагы өз ара аракеттенүү

Бул тема жөнөкөй Unit-сынала түрү Console Application колдонуу үчүн системасын Microsoft Visual Studio 2010 (C #) түзүү кадам жасоо менен кадам сүрөттөйт. Бул мисалды колдонуп, өз Unit-тесттерди түзүү үчүн үйрөнө алабыз. Мисалы, ошондой эле иш-милдеттерди сыноо үчүн Assert класстын колдонууну көрсөтөт.

ыраазы

шарт көйгөй

Мындай Console өтүнмө арыз үч сандын максималдуу элементин аныктайт милдеттери Min (), аткарууну сынайт бир Unit тестти иштеп чыгуу үчүн.

милдеттерин үчүн Min () сыноо TestMin () ыкмасын коюуга. милдетин текшерүү.

аткаруу

1. Арызды үлгү Console applicaiton түзүү

MS Visual Studio 2010 Run төмөнкү буйруктарды чакыруу керек Console Application долбоору үлгүнү түзүү үчүн:

File -> Болумушту -> Долбоор ...

Бул Болумушту долбоору терезени ачат. терезесинде, сүрөттө 1. шаблон табулатура Visual C #-жылы тандалып алынган көрсөтүлгөн Console Колдонмо калыбын тандап алгыла.

Visual C # -> Console Application

Visual C # -> Console Application

Сүрөт. 1. терезе "New Project". өтүнмө Console өтүнмөнү түрүн тандоо

2. Program.cs тексттин модулу

2.1. Module күндүн милдети Min () кошуу

Текстти кошуу үчүн каалаган программасы класс орган Min иштейт ().

милдети коомдук (мамлекеттик) жана туруктуу (статикалык) деп табылат. Текст милдеттери Min ()

коомдук статикалык Int Min (а, б Int, ички с INT) {Инт мин бир =; эгер (мүн> б) мин = б; эгер (мүн> с) мин = с; мүн кайтарып берет; }

коомдук статикалык Int Min (а, б Int, ички с INT) {Инт мин бир =;  эгер (мүн> б) мин = б;  эгер (мүн> с) мин = с;  мүн кайтарып берет;  }

Сүрөт. 2. MS Visual Studio 2010 терезе түрү, сынак "Program.cs"

2.2. класс программасы коомчулукка Make (мамлекеттик)

Бул класска кылууга милдеттери Min () программасы класска алуу мүмкүнчүлүгүнө ээ болушу үчүн жалпыга жеткиликтүү болуп саналат. Бул максатта, класстык жарыялоо зарыл чейин ачкыч коомчулукка аныктоо.

... ат MinApp {коомдук класс программасы {// класс ыкмалары // ...}} ...

Андан кийин, сыналган программа даяр.

3. тест программасынын Жарнак

Азыркы учурда, сыноо программасынын тизмеси төмөнкүчө чагылдырууга болот:

Системасын колдонуу; System.Collections.Generic колдонуу менен; System.Linq колдонуу менен; System.Text колдонуу менен; Аталыштардын MinApp {коомдук класс программасы {коомдук статикалык Int Min (INT турган, ички б, ички с) {Инт мин бир =; эгер (мүн> б) мин = б; эгер (мүн> с) мин = с; мүн кайтарып берет; } Статикалык жараксыз Башкы (сап [] args) {Console.WriteLine ( "C # менен Unit-сыноо Demo."); }}}

Бул программанын негизги () кызматына дагы бир сыноо модулду сыналган болот, анткени силер эмес, керек нерсе эмес. Себеби, маселенин шартына ылайык, сиз иш Min сынаш керек (). Ал эми бир сыноо модулду чейин жүзөгө ашырылат. Азыркы учурда, биздин программа сыноого даяр.

4. тест түзүү

сыноо чечүү (Solution) өзүнчө долбоорун (Долбоор) жаратат. сыноо программасы бул тууралуу билген эмес. (Тест программасы) милдети сыналышы мүмкүн программа, программа сыналып жатканы себеп болот. Бул учурда, программа сыноо милдетин чакырам

Int Min (INT, Int, INT);

4.1. чечүү үчүн жаңы долбоор кошуу

Бул чечимдин (чечүү) үчүн буйругу менен, жаңы долбоорду ишке кошуу үчүн келет

File-> жетүү> Болумушту долбоору ...

Сүрөт бир жаңы долбоорун түзүү үчүн терезе көрсөтүлгөн 3.

Сүрөт. 3. Диалог кутуча Test долбоору Долбоор Долбоор түрү

Тандалган топ Visual C # шаблондор-жылы -> Test. көрсөтүлгөн үлгү боюнча "Test Project" долбоорунун Калып тандалат. "Аты" талааны биздин программалык сыноого долбоордун аталышын камтыйт. Мисалы, TestMinApp, сурашыбыз керек. Долбоор өзүнчө папка жайгаштырылат "E: \ Test \ MinApp".

Долбоор өзүнчө папка жайгаштырылат E: \ Test \ MinApp

Сүрөт. 4. текст UnitTest1.cs модулу. Пайдалуу Solution Explorer картасын түзүү долбоору менен терезе жана TestMinApp MinApp

4.2. чечимдерди түзүмү

4-сүрөттө көрүнүп тургандай, Solution Explorer пайдалуу эки долбоорун камтылган чечимге (Solution пункттары), түзүлүшүн, экранда:

  • MinApp долбоору. Бул долбоор каршылык зарыл иш Min () менен шаблон Console Application жараткан;
  • TestMinApp долбоору. Бул долбоор MinApp долбоор милдеттерин сынаш үчүн иштелип чыккан. Min () милдетин сынап жатат коду, долбоор билэ UnitTest1 долбоорунун TestMinApp киргизилет.

Эки долбоор өз алдынча жүзөгө ашырылышы мүмкүн.

4.3. Текст "UnitTest1.cs" сааты. Касиет-сапаттары [TestMethod] жана [TestClass]

Долбоор TestMinApp негизги пайыздык UnitTest1.cs тестирлөө болот. Бул жылы милдети MinApp долбоорун сыналат жайгаштырылган ыкмалары болуп саналат. TestMinApp долбоору сыноо (мисалы, UnitTest2.cs, UnitTest3.cs ж.б.) камтыган материалдарын кандайдыр бир катар камтышы мүмкүн.

UnitTest1.cs 2010 MS Visual Studio тарабынан түзүлгөн тизмеге билэ төмөнкүчө чагылдырууга болот:

Системасын колдонуу; System.Text колдонуу менен; System.Collections.Generic колдонуу менен; System.Linq колдонуу менен; Microsoft.VisualStudio.TestTools.UnitTesting колдонуу менен; Аталыштардын TestMinApp {/// <на> /// UnitTest1 үчүн кыскача сүрөттөлүшү /// </ на> [TestClass] коомдук класс UnitTest1 {коомдук UnitTest1 () {// // TODO: бул жерде конструктор логиканы кошуу //} жеке TestContext testContextInstance; /// <на> /// уламдан же учурдагы сыноо чуркап жана иш- /// маалыматты берет сыноо контекстти белгилейт. /// </ на> коомдук TestContext TestContext {{testContextInstance кайтарып алууга; } Set {testContextInstance = наркы; }} #Region Кошумча тест // // Сиз тесттерди жазып төмөнкүдөй кошумча касиеттерин колдоно аласыз атрибуты: // // колдонуу ClassInitialize класста биринчи тестин чуркап алдында кодун чуркап // [ClassInitialize ()] // коомдук статикалык жараксыз MyClassInitialize (testContext testContext) {} // // колдонуу ClassCleanup класстын бардык сыноолорго // [ClassCleanup ()] Нускасы кийин кодду иштетүү үчүн // коомдук статикалык жараксыз MyClassCleanup () {} // // колдонуу TestInitialize // [TestInitialize ()] ар бир тест чуркап алдында кодун чуркап // коомдук жараксыз MyTestInitialize () {} // // колдонуу TestCleanup ар бир тест // [TestCleanup ()] Нускасы кийин кодду иштетүү үчүн // коомдук жараксыз MyTestCleanup ( ) {} // #endregion [TestMethod] коомдук күчүн жоготту TestMethod1 () {// // TODO: бул сыноо логиканы кошуу //}}}

Жогоруда кодексине да көрүнүп тургандай, билэ UnitTest1 деген класс бар. класс коомдук (мамлекеттик) ыкмасын TestMethod1 () деп аталат. аныктоо [TestMethod] TestMethod1 жайгашкан колдоноордон мурда () ыкмасы. Бул ыкма дене милдети 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 {/// UnitTest1 үчүн <на> /// кыскача сүрөттөлүшү /// </ на> [TestClass] коомдук класс UnitTest1 {... [TestMethod] коомдук күчүн жоготту TestMin () {// // TODO: кошуу сыноо логика жерде //}}}

4.5. Туташуу TestMinApp үчүн MinApp долбоору

Долбоордун милдеттери Min () (MinApp долбоору) TestMinApp кирүү үчүн, бул милдетти жайгашкан аат туташуу керек.

Бул үчүн, биз биринчи TestMinApp долбоор үчүн контекст менюсун алып келсин. Андан кийин тез меню, сен буйрук "... ИШАРАТ кошуу" (Figure 5) чакыруу зарыл.

ИШАРАТ кошуу (Figure 5) чакыруу зарыл

Сүрөт. 5. Команда "Referencse ... кошуу"

Бул MinApp долбоорду тандап алууга болгон "кошуу Ссылка" терезени ачат.

Сүрөт. 6. терезе "кошуу Маалымдама". Туташтыруу Project MinApp

MinApp долбоор өзгөчөлүктөрүн аткарылгандан кийин TestMinApp долбооруна колдонуу үчүн жеткиликтүү болот.

MinApp долбоор өзгөчөлүктөрүн аткарылгандан кийин TestMinApp долбооруна колдонуу үчүн жеткиликтүү болот

Сүрөт. Долбоордун MinApp менен байланышкан 7. шилтемелер табулатура

4.6. текст модулу UnitTest1.cs өзгөртүүлөр
4.6.1. орун MinApp аттары UnitTest1.cs модулу кошуу

Бул Etap учурда UnitTest1.cs сиз колдонуп буйругун колдонуп орун MinApp аттарды кошуу келет модулдук:

Системасын колдонуу; System.Text колдонуу менен; System.Collections.Generic колдонуу менен; System.Linq колдонуу менен; Microsoft.VisualStudio.TestTools.UnitTesting колдонуу менен; MinApp колдонуу менен; Аталыштардын TestMinApp {...}

4.6.2. Текст TestMin () ыкмасы

төмөнкү кодун керек ыкмасы TestMin () тексти боюнча:

... [TestMethod] коомдук күчүн жоготту TestMin () {// // TODO: бул сыноо логиканы кошуу // Инт мин; мин = Программа .мин (3, 4, 5); Корго .AreEqual (2 мин); ...}

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

Бардык UnitTest1.cs модулунун текст төмөнкүчө чагылдырууга болот:

Системасын колдонуу; System.Text колдонуу менен; System.Collections.Generic колдонуу менен; System.Linq колдонуу менен; Microsoft.VisualStudio.TestTools.UnitTesting колдонуу менен; MinApp колдонуу менен; Аталыштардын TestMinApp {/// <на> /// UnitTest1 үчүн кыскача сүрөттөлүшү /// </ на> [TestClass] коомдук класс UnitTest1 {коомдук UnitTest1 () {// // TODO: бул жерде конструктор логиканы кошуу //} жеке TestContext testContextInstance; /// <на> /// уламдан же учурдагы сыноо чуркап жана иш- /// маалыматты берет сыноо контекстти белгилейт. /// </ на> коомдук TestContext TestContext {{testContextInstance кайтарып алууга; } Set {testContextInstance = наркы; }} #Region Кошумча тест // // Сиз тесттерди жазып төмөнкүдөй кошумча касиеттерин колдоно аласыз атрибуты: // // колдонуу ClassInitialize класста биринчи тестин чуркап алдында кодун чуркап // [ClassInitialize ()] // коомдук статикалык жараксыз MyClassInitialize (testContext testContext) {} // // колдонуу ClassCleanup класстын бардык сыноолорго // [ClassCleanup ()] Нускасы кийин кодду иштетүү үчүн // коомдук статикалык жараксыз MyClassCleanup () {} // // колдонуу TestInitialize // [TestInitialize ()] ар бир тест чуркап алдында кодун чуркап // коомдук жараксыз MyTestInitialize () {} // // колдонуу TestCleanup ар бир тест // [TestCleanup ()] Нускасы кийин кодду иштетүү үчүн // коомдук жараксыз MyTestCleanup ( ) {} // #endregion [TestMethod] коомдук күчүн жоготту TestMin () {// // TODO: бул сыноо логиканы кошуу // Инт мин; мин = Программа .мин (3, 4, 5); Корго .AreEqual (2 мин); }}}

5. тест жыйынтыгы ишке ашыруу жана текшерүү боюнча тест Running

2010-жылы Microsoft Visual Studio Unit-сыноо менен иштөө, буйруктарына атайын меню тест деп аталат.

аткаруу үчүн тест жүргүзүү үчүн, буйруктун бирин тандоого тийиш

Test -> Run -> боюнча тесттер

Current Context

же

Test -> Run -> Бардык тесттер

Чечими менен

Сүрөттө көрсөтүлгөндөй, 8.

Сүрөттө көрсөтүлгөндөй, 8

Сүрөт. 8. сыноо жана мазмунун жыйынтыктарын баштоо буйругун чал

Сынактан баштап, натыйжасы Test натыйжалары Терезенин ылдый көрүүгө болот. сүрөттө көрүнүп тургандай, тест жеткирилген эмес. Assert.AreEqual () иш-жылдан бери, биз бири-биринен айырмаланып турат номерлерди 2 жана 3-, салыштырып Бул логикага туура келет. ордуна ачык катталган номери 2 бар 3.

ордуна 2-туура жооп кирип, анда - санда 3 (ортосунда, жок дегенде, 3, 4, 5), сыноо жеткирилет (Figure 9). Бул учурда, ыкмасы TestMin () тексти төмөнкүчө чагылдырууга болот:

... [TestMethod] коомдук күчүн жоготту TestMin () {// // TODO: бул сыноо логиканы кошуу // Инт мин; мин = Программа .мин (3, 4, 5); Корго .AreEqual (3 мүн); ...}

Натыйжада терезе сүрөттө көрсөтүлгөн 9.

Натыйжада терезе сүрөттө көрсөтүлгөн 9

Сүрөт. 9. иш боюнча текшерүүнүн натыйжалары Силер бул суроого туура жооп кирсем

Эми биз бул иш боюнча Min () кызматы иштеп жатат деп жыйынтык чыгарууга болот.

6. Жыйынтык. долбоорлордун ортосундагы өз ара аракеттенүү

Бул эмгекте, чечим (Solution) эки долбоорлор пайда болгон. Бир MinApp проекти сынаш үчүн каалаган бир Min () милдетин камтыйт. Экинчи долбоор TestMinApp Testing ыкмаларды камтыйт.

Microsoft Visual Studio 2010-жылы долбоорлорду ишке ар кандай меню буйруктарына тарабынан. Ошондуктан, MinApp долбоору Run менюсунан стандарттык жол менен баратат. А TestMinApp долбоор атайын Test менюдан баштады.

байланышкан темалар