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. TestMinApp төслийн MinApp төслийг холбох
  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-т үзүүлсэн Консолын Програмын загварыг сонгоно. Загварыг Visual C # tab дээр сонгоно.

Visual C # -> Консолын Програм

Visual C # -> Консолын Програм

Зураг. 1. "Шинэ төсөл" цонх. Консолын Програмын Хэрэгслийг сонгох

2. Program.cs модуль текст бэлтгэх

2.1. Min () функцийг текстийг модульд нэм

Мин () функцийн текстийг Хөтөлбөрийн ангийн биед нэмэх ёстой.

Функцийг олон нийтэд (статик) болон олон нийтэд мэдээлдэг. Min () функцийн текст

public static int Мин (int a, int b, int c) {int min = a; if (min> b) min = b; if (min> c) min = c; буцах мин; }

public static int Мин (int a, int b, int c) {int min = a;  if (min> b) min = b;  if (min> c) min = c;  буцах мин;  }

Зураг. 2. MS Visual Studio 2010 цонхны модулийн "Program.cs"

2.2. Хөтөлбөрийн анги нийтэд үйлчилнэ үү

Хөтөлбөрийн ангийн Мин () функцэд хандахын тулд та энэ ангид олон нийтэд нээлттэй байх хэрэгтэй. Үүнийг хийхийн тулд ангидаа зарлахаас өмнө нийтийн түлхүүр үгсийг тодорхойлох хэрэгтэй.

... namespace MinApp {public class Program {// class methods // ...}} ...

Үүний дараа туршилтын програм бэлэн болно.

3. Туршилтын хөтөлбөрийг бүртгэх

Одоогоор шалгалтын хөтөлбөрийн жагсаалтыг дараах байдлаар харуулав:

Системийг ашиглах; System.Collections.Generic; System.Linq ашиглан; 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; буцах мин; } static void Main (string [] args) {Console.WriteLine ("C # in Unit-testing in Demo"); }}}

Энэ програм нь өөр нэг шалгалтын модулиас шалгагдах тул, Main () функцэд өөр ямар ч зүйл оруулах шаардлагагүй болно. Асуудлын нөхцөл байдлын дагуу Min () функцын ажиллагааг шалгах хэрэгтэй. Үүнийг туршилтын модуль дээр хийх болно. Одоогоор манай програмыг туршихад бэлэн байна.

4. Тест хийх

Туршилтыг уусмал дахь тусдаа төсөл (Төсөл) -аар үүсгэнэ. Туршилтын програм энэ талаар мэдэхгүй байна. Туршилтын програм (турших хөтөлбөр) нь шалгагдсан програмын функцуудыг дуудна. Бидний хувьд туршилтын програмыг функц гэж нэрлэнэ

int Min (int, int, int);

4.1. Шийдвэрт шинэ төсөл нэмж оруулах

Энэ шийдэлд (Шийдэл) тушаалыг ашиглан шинэ төсөл нэмж оруулах хэрэгтэй

File-> Add-> New Project ...

Шинэ төсөл боловсруулах цонхыг Зураг 3-т харуулав.

Зураг. 3. Теслийн теслийн тесел боловсруулах цонх

Visual C # загварууд -> Тестийг цонхонд сонгож байна. Дэлгэцийн загвараас "Test Project" төслийн загварыг сонгоно уу. "Нэр" талбарт бидний програмыг тестлэх төслийн нэрийг бичсэн болно. Жишээ нь TestMinApp гэж тохируулах хэрэгтэй. Төсөл нь "E: \ Test \ MinApp" тусдаа хавтсанд байрлана.

Төсөл нь E: \ Test \ MinApp тусдаа хавтсанд байрлана

Зураг. 4. Модулийн текст UnitTest1.cs. TestMinApp болон MinApp төслүүдтэй Solution Explorer цонхыг үзүүлэв

4.2. Шийдэлийн бүтэц

Зураг 4-т үзүүлснээр Solution Explorer хэрэгсэл нь хоёр төслийг агуулсан Solution Items structure-ыг харуулна.

  • төсөл MinApp. Энэ бол эсэргүүцэхийг хүссэн Min () функцтай Консолын Програмын загварыг ашиглан үүсгэсэн төсөл юм;
  • 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 ашиглан; namespace TestMinApp {/// <summary> /// UnitTest1 /// </ summary> [TestClass] public class UnitTest1 {public UnitTest1 () {// // TODO: энд байгуулагчийн логик нэмэх // private testContext testContextInstance; /// <summary> /// Тестийн нөхцөлийг тогтооно. /// </ summary> public TestContext TestContext {get {return testContextInstance; } set {testContextInstance = утга; }} #region Туршилтын нэмэлт шинж чанарууд // та өөрийн тестийг ашиглаж болно // // ClassInitialize // [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {} // // classCleanup классыг ажиллуулахын тулд кодыг ажиллуулахын тулд class [/ classCleanup ()] // public static void MyClassCleanup () {} // // TestInitialize ашиглах test / [TestInitialize ()] // текстийг ажиллуулахын өмнө кодыг ажиллуулахын тулд MyTestInitialize () {} // // TestCleanup ашиглах ) {} // #endregion [TestMethod] public null testMethod1 () {// // TODO: энд тестийн логик нэмэх //}}}

Дээрх кодоос харж болно, файл нь UnitTest1 нэртэй анги агуулна. Ангилал TestMethod1 () гэж нэрлэгддэг нийтийн аргатай. TestMethod1 () аргыг хэрэгжүүлэхийн өмнө [TestMethod] шинж чанарыг байрлуулсан болно. Энэ нь метаппын төслийн функцийг шалгах арга юм.

Ангилалд та янз бүрийн модулиудаас ялгаатай функцуудыг туршиж үзэх хэд хэдэн аргыг оруулж болно. Хамгийн гол нь эдгээр аргууд нь [TestMethod] шинж чанараар тэмдэглэгдсэн байдаг.

4.4. UnitTest1 модулийн текстэнд өөрчлөлт оруулах. Тестийн нэрийг өөрчлөх

Та аргын нэрийг өөрчилж, UnitTest1.cs модулийн [TestMethod] шинж чанараар тэмдэглэгдсэн шинэ аргуудыг нэмж болно. Үүнийг, UnitTest1.cs модулийн текст дотор TestMin () TestMethod1 () аргыг нэрлэх хэрэгтэй.

Өөрчлөлт хийгдсэний дараа UnitTest1.cs файлын товчилсон бичвэр нь:

Системийг ашиглах; System.Text; System.Collections.Generic; System.Linq ашиглан; Microsoft.VisualStudio.TestTools.UnitTesting ашиглан; namespace TestMinApp {/// <summary> /// UnitTest1 /// </ summary> [TestClass] public class UnitTest1 {... [TestMethod] public blank TestMin () {// // TODO: Туршилт нэмэх энд логик}}}

4.5. TestMinApp төслийн MinApp төслийг холбох

TestMinApp төслийн Min () функц (MinApp төсөл) рүү хандахын тулд, энэ функц хаана байрладаг нэрийн талбарыг холбох хэрэгтэй.

Үүнийг хийхийн тулд та TestMinApp төслийн хувьд context menu-ийг дуудах хэрэгтэй. Дараа нь context цэснээс "Лавлах нэмж оруулах ..." командыг дуудах хэрэгтэй (Зураг 5).

 командыг дуудах хэрэгтэй (Зураг 5)

Зураг. 5. Баг "Add Referencse ..." баг

Үүний үр дүнд Нэмэлт лавлагааны цонх нээгдэнэ. Ингэснээр та MinApp төслийг сонгох хэрэгтэй.

Зураг. 6. "Лавлахыг нэмэх" цонх. MinApp төслийг холбох

Бүрэн дууссаны дараа MinApp төслийн функц нь TestMinApp төслийн хүрээнд ашиглах боломжтой болно.

Бүрэн дууссаны дараа MinApp төслийн функц нь TestMinApp төслийн хүрээнд ашиглах боломжтой болно

Зураг. 7. Холбогдсон MinApp төслийн холбоотой лавлах таб

4.6. UnitTest1.cs модулийн текстэнд өөрчлөлт оруулах
4.6.1. MinPart1.cs модульд MinApp нэрийн талбарыг нэмнэ

Энэ үе шатанд, UnitTest1.cs модуль дээр та удирдамж ашиглан, MinApp namespace гэж нэмэх хэрэгтэй:

Системийг ашиглах; System.Text; System.Collections.Generic; System.Linq ашиглан; Microsoft.VisualStudio.TestTools.UnitTesting ашиглан; MinApp-г ашиглах; namespace TestMinApp {...}

4.6.2. TestMin () аргын текст

TestMin () аргын текстэнд дараах кодыг оруулна уу:

... [TestMethod] public null TestMin () {// // TODO: энд тестийн логик нэмэх // int min; мин = Хөтөлбөр .Мин (3, 4, 5); Итгэмжлэх .EreEqual (2, мин); } ...

4.7. UnitTest1.cs модулийн текст

UnitTest1.cs модулийг бүхэлд нь дараах байдлаар бичнэ:

Системийг ашиглах; System.Text; System.Collections.Generic; System.Linq ашиглан; Microsoft.VisualStudio.TestTools.UnitTesting ашиглан; MinApp-г ашиглах; namespace TestMinApp {/// <summary> /// UnitTest1 /// </ summary> [TestClass] public class UnitTest1 {public UnitTest1 () {// // TODO: энд байгуулагчийн логик нэмэх // private testContext testContextInstance; /// <summary> /// Тестийн нөхцөлийг тогтооно. /// </ summary> public TestContext TestContext {get {return testContextInstance; } set {testContextInstance = утга; }} #region Туршилтын нэмэлт шинж чанарууд // та өөрийн тестийг ашиглаж болно // // ClassInitialize // [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {} // // classCleanup классыг ажиллуулахын тулд кодыг ажиллуулахын тулд class [/ classCleanup ()] // public static void MyClassCleanup () {} // // TestInitialize ашиглах test / [TestInitialize ()] // текстийг ажиллуулахын өмнө кодыг ажиллуулахын тулд MyTestInitialize () {} // // TestCleanup ашиглах ) {} // #endregion [TestMethod] public null TestMin () {// // TODO: энд тестийн логик нэмэх // int min; мин = Хөтөлбөр .Мин (3, 4, 5); Итгэмжлэх .EreEqual (2, мин); }}}

5. Туршилтыг хийж, шинжилгээний үр дүнг шалгана

Microsoft Visual Studio 2010 дээр Тест гэж нэрлэгддэг командын тусгай цэс нь Unit test-тэй ажиллахад зориулагдсан.

Гүйцэтгэлийн тестийг ажиллуулахын тулд командуудын аль нэгийг сонгоно уу.

Туршилт -> Run -> Одоогийн байдал дахь туршилтууд

эсвэл

Туршилт -> Run -> Шийдэл дэх бүх туршилтууд

8-р зурагт үзүүлсний дагуу.

Зураг. 8. Эхлээд тестийн командыг дуудаад үр дүнг харах.

Тестийг ажиллуулсны дараа үр дүнг туршилтын үр дүнгийн цонхны доод хэсэгт харж болно. Зураг дээрээс харахад туршилтыг батлахгүй. Энэ нь логик юм. Учир нь Assert.AreEqual () функц нь 2 болон 3 тоог харьцуулдаг. Энд 2 дугаарыг 3-р оронд тусгайлан танилцуулсан.

Хэрэв 2-р тоогоороо зөв хариулт өгвөл - 3-р (хамгийн багадаа 3, 4, 5-р мөрөнд), туршилтыг өгнө (Зураг 9). Энэ тохиолдолд TestMin () аргын текст дараах байдлаар байна:

... [TestMethod] public null TestMin () {// // TODO: энд тестийн логик нэмэх // int min; мин = Хөтөлбөр .Мин (3, 4, 5); Итгэмжлэх .EreEqual (3, мин); } ...

Үр дүнгийн цонхыг 9-р зурагт үзүүлэв.

Зураг. 9. Хэрэв та зөв хариултыг оруулбал хэргийг шалгах үр дүн

Одоогийн байдлаар Min () функц нь зөв ажиллаж байгааг бид дүгнэж болно.

6. Үр дүн. Төслийн хоорондох харилцан хамаарал

Уг шийдэлд хоёр төсөл бий болсон. Нэг MinApp төсөл нь таны хүсч буй Min () функцыг агуулдаг. Хоёр дахь төсөл, TestMinApp нь туршилтын аргуудыг агуулдаг.

Microsoft Visual Studio 2010 дээр төсөл бүрийг цэс бүрийн комманд ашиглан эхлүүлнэ. Тиймээс MinApp төсөл нь Run цэсээс стандарт аргаар гардаг. TestMinApp төслийн тусгай тестийн цэснээс эхлүүлсэн.

Холбоотой сэдвүүд