<
  • Главная
Статьи

C #. MS Visual Studio- ში ერთეული ტესტის შექმნის მაგალითი

  1. შინაარსი
  2. შესრულება
  3. 2. მოდულის ტექსტის მომზადების პროგრამის მომზადება
  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 #) - ში მარტივი განაცხადის გამოცდის შექმნის ეტაპობრივი პროცესი. ამ მაგალითის გამოყენებით შეგიძლიათ გაიგოთ, თუ როგორ შექმნათ თქვენი საკუთარი ერთეული ტესტები. მაგალითში ასევე ჩანს, რომ ფუნქციონირების ფუნქციის შესამოწმებლად მტკიცებულებათა კლასი გამოყენება.

შინაარსი

პრობლემის მდგომარეობა

განაცხადისთვის, როგორიცაა Console Application, განავითაროს ერთეულის ტესტი, რომელიც შეამოწმებს მინი () ფუნქციის ფუნქციას, რომელიც განსაზღვრავს სამი ნომრის მაქსიმალურ ელემენტს.

მინ. () ფუნქციისთვის, ტესტირების მეთოდის დაყენება TestMin (). შეამოწმეთ ფუნქცია.

შესრულება

1. შექმენით განაცხადი Console Applicaiton- ის თარგის გამოყენებით

აწარმოებს MS Visual Studio 2010- ს შესრულების მიზნით .პროექტის შესაქმნელად კონსოლი განაცხადის ნიმუშის გამოყენებით შეიტანეთ შემდეგი ბრძანებები:

ფაილი -> ახალი -> პროექტი ...

შედეგად, ახალი პროექტის ფანჯარა იხსნება. ფანჯარაში შეარჩიეთ კონსოლი განაცხადის შაბლონი, როგორც ეს ნაჩვენებია სურათზე 1. შაბლონი შერჩეულია Visual C # Tab- ში.

ვიზუალური C # -> კონსოლი განაცხადი

ვიზუალური C # -> კონსოლი განაცხადი

ნახ. 1. ფანჯარა "ახალი პროექტი". შერჩევა განაცხადის Console განაცხადის ტიპი

2. მოდულის ტექსტის მომზადების პროგრამის მომზადება

2.1. დამატება მინი () ფუნქცია მოდულის ტექსტში

პროგრამის კლასში, მინ. () ფუნქციის ტექსტი დაამატეთ.

ფუნქცია საჯაროდ (სტატიკური) და საჯაროა. მინი () ფუნქციის ტექსტი

საჯარო სტატიკური int მინ (int, int b, int c) {int min = a; თუ (მინ.> ბ) მინ = ბ; თუ (მინ. გ) მინ = გ; დაბრუნება მინ. }

}

ნახ. 2. MS Visual Studio 2010- ის ფანჯრის ნახვა, მოდული "Program.cs"

2.2. გააკეთე პროგრამის კლასი საჯარო

იმისათვის, რომ ხელი მიუწვდებოდეთ პროგრამის პროგრამის მინი () ფუნქციაზე, ამ კლასს საჯაროდ უნდა მიუწვდებოდეთ. ამის გაკეთება, კლასი გამოცხადებამდე, საჭიროა საჯარო სიტყვის განსაზღვრა.

... სახელთა სივრცე MinApp {საჯარო კლასის პროგრამა {/ კლასის მეთოდები // ...}} ...

ამის შემდეგ, ტესტის პროგრამა მზად არის.

3. ტესტირებული პროგრამის ჩამონათვალი

ამ დროისთვის ტესტირების პროგრამის ჩამონათვალია შემდეგი:

სისტემის გამოყენებით; System.Collections.Generic- ის გამოყენებით; System.Linq- ის გამოყენებით; System.Text- ის გამოყენებით; სახელთა სივრცე MinApp {საჯარო კლასის პროგრამა {საჯარო სტატიკური int მინ (int, int b, int c) {int min = a; თუ (მინ.> ბ) მინ = ბ; თუ (მინ. გ) მინ = გ; დაბრუნება მინ. } სტატიკური ბათილია ძირითადი (string [] args) {Console.WriteLine ("დემონტრირების ტესტირება C #."); }}}

მას შემდეგ, რაც ამ პროგრამის ტესტირება მოხდება სხვა ტესტირების მოდულისგან, არ არის საჭირო სხვა (მთავარი) ფუნქციის შეტანა. იმის გამო, რომ პრობლემის მდგომარეობის გათვალისწინებით, თქვენ უნდა შეამოწმოთ მინ. (ფუნქციის ფუნქცია). და ეს გაკეთდება ტესტირების მოდულისგან. ამ ეტაპზე ჩვენი პროგრამა მზად არის ტესტირებისათვის.

4. გამოცდის შექმნა

ტესტი შექმნილია ცალკე პროექტის (პროექტი) მიერ გადაწყვეტისას (გადაწყვეტა). პროგრამის ტესტირება არ იცის ამის შესახებ. პროგრამა, რომელიც შეამოწმებს (ტესტირების პროგრამა), შეამოწმებს პროგრამის ტესტირებას. ჩვენს შემთხვევაში, ტესტის პროგრამა ფუნქციას უწოდებს

int მინ (int, int, int);

4.1. ახალი პროექტის დამატება

ამ გადაწყვეტილებისთვის (Solution) თქვენ უნდა დაამატოთ ახალი პროექტი ბრძანების გამოყენებით

ფაილი-> Add-> ახალი პროექტი ...

ახალი პროექტის შექმნის ფანჯარა ნაჩვენებია სურათზე 3.

ნახ. 3. ტიპის ტესტის პროექტის შექმნის ფანჯარა

ვიზუალური C # თარგების ჯგუფი -> ტესტი შეირჩევა ფანჯარაში. ნაჩვენები თარგებიდან, შერჩეულია "ტესტის პროექტი" პროექტის თარგი. სფეროში "სახელი" არის პროექტის დასახელება, რომელიც შეისწავლის ჩვენს პროგრამას. მაგალითად, TestMinApp- ის დაყენება გჭირდებათ. პროექტი მდებარეობს ცალკე საქაღალდეში "E: \ Test \ MinApp".

პროექტი მდებარეობს ცალკე საქაღალდეში E: \ Test \ MinApp

ნახ. 4. მოდულის მოდული UnitTest1.cs. Solution Explorer სასარგებლო ფანჯარა TestMinApp და MinApp პროექტები ნაჩვენები

4.2. გადაწყვეტილების სტრუქტურა

როგორც ჩანს სურათი 4, Solution Explorer კომუნალური გვიჩვენებს Solution Items სტრუქტურა, რომელიც შეიცავს ორ პროექტს:

  • პროექტი MinApp. ეს არის კონსოლი განაცხადის თარგის გამოყენებით შექმნილ პროექტს მინი () ფუნქციით, რომლითაც გსურთ პროტესტი;
  • TestMinApp პროექტი. პროექტი მიზნად ისახავს MinApp პროექტის თვისებების შესამოწმებლად. პროგრამის კოდი, რომელიც ახორციელებს მინი () ფუნქციას, შედის TestMinApp პროექტის UnitTest1 პროექტის ფაილი.

ორივე პროექტი შეიძლება დამოუკიდებლად განხორციელდეს ერთმანეთისგან.

4.3. ტექსტის ფაილი "UnitTest1.cs". ატრიბუტები [TestMethod] და [TestClass]

In TestMinApp პროექტი, ტესტი ფაილი UnitTest1.cs არის პირველადი ინტერესი. ეს ფაილი შეიცავს მეთოდებს, რომლებიც შეისწავლიან MinApp პროექტის ფუნქციებს. TestMinApp- ის პროექტში შეიძლება შეიცავდეს ნებისმიერი რაოდენობის ფაილი, რომელიც შეიცავს ტესტებს (მაგალითად, UnitTest2.cs, UnitTest3.cs და ა.შ.).

2010 წლის MS Visual Studio- ის მიერ წარმოებული UnitTest1.cs- ის ჩამონათვალი შემდეგია:

სისტემის გამოყენებით; System.Text- ის გამოყენებით; System.Collections.Generic- ის გამოყენებით; System.Linq- ის გამოყენებით; Microsoft.VisualStudio.TestTools.UnitTesting- ის გამოყენებით; (TestClass) საჯარო კლასის UnitTest1 {საჯარო UnitTest1 () {/ // TODO: მშენებელი ლოგიკის დამატება აქ //} კერძო TestContext testContextInstance; /// <summary> /// აკმაყოფილებს ან აწესებს სატესტო კონტექსტს. /// </ summary> public TestContext TestContext {get {return testContextInstance; } მითითებული {testContextInstance = ღირებულება; }} #region დამატებითი ტესტი ატრიბუტები // შეგიძლიათ გამოიყენოთ თქვენი ტესტები // / / გამოიყენე ClassInitialize // [ClassInitialize ()] // საჯარო სტატიკური ბათილი MyClass ინიციალიზაცია (TestContext testContext) {} // / გამოიყენე ClassCleanup- ს კოდით დაწყების შემდეგ კლასში ყველა გამოცდის ჩაბარების შემდეგ / / [ClassCleanup ()] / / საჯარო სტატიკური ბათილი MyClassCleanup () {} // // გამოიყენე TestInitialize აწარმოებს კოდს თითოეული ტესტის გაშვებაზე ადრე // TestInitialize ()] // საჯარო ბათილი MyTestInitialize () {} // // გამოიყენე TestCleanup ) {} // #endregion [TestMethod] საჯარო ძალადაკარგულად TestMethod1 () {/ // TODO: დამატება ტესტი ლოგიკა აქ //}}}

როგორც ზემოთ მოყვანილი კოდიდან ჩანს, ფაილი შეიცავს კლასს, რომელიც არის UnitTest1. კლასს აქვს საჯარო მეთოდი სახელწოდებით TestMethod1 (). TestMethod1 () მეთოდის განხორციელებამდე განთავსდება [TestMethod] ატრიბუტი. ეს იმას ნიშნავს, რომ თქვენ უნდა შეიტანოთ კოდი, რომელიც შეისწავლის მინიატპის პროექტის ფუნქციებს ამ მეთოდის ორგანიზმში.

კლასში შეგიძლიათ შეიყვანოთ ნებისმიერი მეთოდი, რომელიც სხვადასხვა მოდულისგან განსხვავებულ ფუნქციებს შეამოწმებს. მთავარია, რომ ეს მეთოდები აღინიშნება [TestMethod] ატრიბუტით.

4.4. ცვლილებების შეტანა UnitTest1 მოდულის ტექსტში. ტესტირების მეთოდის შეცვლა

თქვენ შეგიძლიათ შეცვალოთ მეთოდების სახელები და დაამატოთ ახალი მეთოდები, რომლებიც აღინიშნება [TestMethod] ატრიბუტით UnitTest1.cs მოდულში. ამის გათვალისწინებით, UnitTest1.cs- ის მოდულის ტექსტში, საჭიროა TestMethod1 () მეთოდის გამოცემა TestMin ().

ცვლილებების შეტანის შემდეგ, UnitTest1.cs- ის მოდულის მოკლე ტექსტი იქნება:

სისტემის გამოყენებით; System.Text- ის გამოყენებით; System.Collections.Generic- ის გამოყენებით; System.Linq- ის გამოყენებით; Microsoft.VisualStudio.TestTools.UnitTesting- ის გამოყენებით; [TestMethod] საჯარო ძალადაკარგულად TestMin () {/ // TODO: დამატება გამოცდის დამატება ლოგიკა აქ //}}}

4.5. MinApp პროექტის დამაკავშირებელი TestMinApp პროექტთან დაკავშირება

TestMinApp- ის პროექტის (MinApp პროექტი) წვდომისთვის, თქვენ უნდა დააკავშიროთ სახელთა სივრცე, რომელშიც ეს ფუნქციაა განთავსებული.

ამისათვის, უპირველეს ყოვლისა, საჭიროა დარეკეთ კონტექსტური მენიუ TestMinApp პროექტისთვის. შემდეგ კონტექსტური მენიუში უნდა დარეკოთ ბრძანება "დამატება მითითება ..." (სურათი 5).

 (სურათი 5)

ნახ. 5. გუნდი "დამატება Reference ..."

შედეგად, Add Reference window გაიხსნება, რომელშიც თქვენ უნდა აირჩიოთ MinApp პროექტი.

ნახ. 6. ფანჯარა "დამატება Reference". პროექტთან დაკავშირება MinApp

დასრულებული ქმედებების შემდეგ, MinApp პროექტის ფუნქციები ხელმისაწვდომი იქნება TestMinApp- ის პროექტში.

დასრულებული ქმედებების შემდეგ, MinApp პროექტის ფუნქციები ხელმისაწვდომი იქნება TestMinApp- ის პროექტში

ნახ. 7. საცნობარო ჩანართი MinApp- ის დაკავშირებულ პროექტთან

4.6. ცვლილებების შეტანა მოდულის UnitTest1.cs- ის ტექსტში
4.6.1. დამატება მინიატურ სახელთა სივრცეში UnitTest1.cs მოდულში

ამ ეტაპზე, UnitTest1.cs მოდულში, თქვენ უნდა დაამატოთ MinApp namespace გამოყენებით გამოყენებით დირექტივა:

სისტემის გამოყენებით; System.Text- ის გამოყენებით; System.Collections.Generic- ის გამოყენებით; System.Linq- ის გამოყენებით; Microsoft.VisualStudio.TestTools.UnitTesting- ის გამოყენებით; MinApp- ის გამოყენებით; სახელთა სივრცე TestMinApp {...}

4.6.2. TestMin () მეთოდი ტექსტი

TestMin () მეთოდის ტექსტში, შეიყვანეთ შემდეგი კოდი:

... [TestMethod] საჯარო ბათილად TestMin () {/ // TODO: დამატება ტესტი ლოგიკა აქ // int min; წუთი = პროგრამა. (3, 4, 5); დადასტურება .AreEqual (2 წთ); } ...

4.7. UnitTest1.cs მოდულის ტექსტი

მთლიანი UnitTest1.cs მოდულის ტექსტი შემდეგია:

სისტემის გამოყენებით; System.Text- ის გამოყენებით; System.Collections.Generic- ის გამოყენებით; System.Linq- ის გამოყენებით; Microsoft.VisualStudio.TestTools.UnitTesting- ის გამოყენებით; MinApp- ის გამოყენებით; (TestClass) საჯარო კლასის UnitTest1 {საჯარო UnitTest1 () {/ // TODO: მშენებელი ლოგიკის დამატება აქ //} კერძო TestContext testContextInstance; /// <summary> /// აკმაყოფილებს ან აწესებს სატესტო კონტექსტს. /// </ summary> public TestContext TestContext {get {return testContextInstance; } მითითებული {testContextInstance = ღირებულება; }} #region დამატებითი ტესტი ატრიბუტები // შეგიძლიათ გამოიყენოთ თქვენი ტესტები // / / გამოიყენე ClassInitialize // [ClassInitialize ()] // საჯარო სტატიკური ბათილი MyClass ინიციალიზაცია (TestContext testContext) {} // / გამოიყენე ClassCleanup- ს კოდით დაწყების შემდეგ კლასში ყველა გამოცდის ჩაბარების შემდეგ / / [ClassCleanup ()] / / საჯარო სტატიკური ბათილი MyClassCleanup () {} // // გამოიყენე TestInitialize აწარმოებს კოდს თითოეული ტესტის გაშვებაზე ადრე // TestInitialize ()] // საჯარო ბათილი MyTestInitialize () {} // // გამოიყენე TestCleanup ) {} // #endregion [TestMethod] საჯარო ძალადაკარგულად TestMin () {/ // TODO: დამატება ტესტი ლოგიკა აქ // int min; წუთი = პროგრამა. (3, 4, 5); დადასტურება .AreEqual (2 წთ); }}}

5. ტესტის ჩატარება და ტესტის შედეგების შემოწმება

Microsoft Visual Studio 2010- ში, ტესტების სპეციალური მენიუ ტესტები ხორციელდება ერთეულის ტესტებთან მუშაობისთვის.

აღსრულების ტესტირებისთვის აირჩიეთ ერთ-ერთი ბრძანება.

Test -> Run -> ტესტები მიმდინარე კონტექსტში

ან

ტესტი -> გაუშვით -> ყველა ტესტებში გამოსავალი

როგორც ეს ნაჩვენებია სურათზე 8.

ნახ. 8. დარეკეთ დაწყების სატესტო ბრძანება და იხილა შედეგი.

ტესტის ჩატარების შემდეგ შედეგი შეიძლება ჩაითვალოს ტესტირების შედეგების ფანჯრის ბოლოში. როგორც ჩანს ფიგურა, ტესტი არ არის მიღებული. ეს ლოგიკურია, რადგან Assert.AreEqual () ფუნქციაში შევადარებთ რიცხვებს 2 და 3, რომლებიც განსხვავებულია. აქ 2-ის ნაცვლად სპეციალურად შემოთავაზებული ნომერი 2.

თუ ნომერ 2-ის ნაცვლად სწორად მიუთითეთ ნომერი 3 (მინიმუმ 3, 4, 5), მაშინ გამოცდა გაივლის (სურათი 9). ამ შემთხვევაში, TestMin () მეთოდის ტექსტი იქნება შემდეგი:

... [TestMethod] საჯარო ბათილად TestMin () {/ // TODO: დამატება ტესტი ლოგიკა აქ // int min; წუთი = პროგრამა. (3, 4, 5); დადასტურება .AreEqual (3 წთ); } ...

შედეგების ფანჯარა ნაჩვენებია ნახაზზე 9.

ნახ. 9. სატესტო შედეგი შემთხვევაში, თუ შევა სწორი პასუხი

ახლა შეგვიძლია დავასკვნათ, რომ ამ საქმის მინ. () ფუნქცია სწორად მუშაობს.

6. შედეგი. პროექტებს შორის ურთიერთქმედება

ამ დოკუმენტში, ორი პროექტი იქმნება გადაწყვეტაში. ერთი MinApp პროექტი შეიცავს მინ () ფუნქციას, რომლის შესამოწმებლად გსურთ. მეორე პროექტი TestMinApp შეიცავს ტესტირების მეთოდებს.

Microsoft Visual Studio 2010-ში, თითოეული პროექტი დაიწყო სხვადასხვა მენიუს ბრძანებების გამოყენებით. ასე რომ, MinApp პროექტი დაიწყო სტანდარტული გზა Run Run მენიუდან. და TestMinApp- ის პროექტი სპეციალური ტესტის მენიუდან იწყება.

დაკავშირებული თემები



Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью