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» ֆայլի տեքստը: Attributes [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 դասի օգտագործումը:

Բովանդակությունը

Խնդիրի վիճակը

Վահանակի կիրառման նման հավելվածի համար մշակեք Unit test, որը ստուգում է Min () գործառույթի գործողությունը, որը սահմանում է երեք թվերի առավելագույն տարրը:

Min () գործառույթի համար փորձարկման մեթոդը սահմանեք TestMin (): Ստուգեք գործառույթը:

Իրականացում

1. Ստեղծեք ծրագիր, օգտագործելով Վահանակի կիրառման կաղապարը

Գործարկեք MS Visual Studio 2010-ի կատարման համար: Կաղապարային հավելվածի օրինակին օգտագործելու համար նախագիծը ստեղծելու համար պետք է հրավիրել հրամանների հաջորդ հաջորդականությունը.

Ֆայլի -> Նոր -> Ծրագիր ...

Արդյունքում Նոր Ծրագրի պատուհանը բացվում է: Պատուհանում ընտրեք Վահանակների կիրառման կաղապարը, ինչպես ցույց է տրված Նկար 1-ում: Կաղապարը ընտրվում է Visual C # էջում:

Visual C # -> Console Application- ը

Visual C # -> Console Application- ը

Նկար. 1. «Նոր նախագիծ» պատուհանը: Ընտրելով Application Console Application Type- ը

2. Ծրագրի նախապատրաստական ​​նյութերի տեքստի պատրաստում

2.1. Ավելացնել Min () գործառույթը մոդուլի տեքստում

Ծրագրի դասի մարմնին ավելացրեք Min () գործառույթի տեքստը:

Ֆունկցիան հայտարարվում է որպես հանրային (ստատիկ) եւ հանրային: Min () գործառույթի տեքստը

Հասարակական static int Min (int a, int b, int c) {int min = a; եթե (min> b) min = b; եթե (min> c) min = c; վերադարձի min; }

Հասարակական 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 () գործառույթից օգտվելու համար անհրաժեշտ է այս դասը հրապարակայնորեն մատչելի դարձնել: Որպեսզի դա անել, նախքան դասը հայտարարելը, դուք պետք է սահմանեք հանրային բանալի բառ:

... namespace MinApp {հանրային դաս Program {// class methods // ...}} ...

Դրանից հետո փորձարկման ծրագիրը պատրաստ է:

3. Փորձարկված ծրագրի ցանկը

Այս պահին փորձարկվող ծրագրի ցանկը հետեւյալն է.

օգտագործելով համակարգը; օգտագործելով System.Collections.Generic; օգտագործելով System.Linq; օգտագործելով System.Text; անվանական տարածք MinApp {հանրային դաս Program {public static int Min (int a, int b, int c) {int min = a; եթե (min> b) min = b; եթե (min> c) min = c; վերադարձի min; } static void Main (string [] args) {Console.WriteLine («C #- ի միավորի թեստավորման ցուցադրություն»); }}}

Քանի որ այս ծրագիրը փորձարկվելու է մեկ այլ փորձարկման մոդուլից, հիմնական () ֆունկցիայի մեջ այլ բան չկա: Քանի որ, խնդրի վիճակի համաձայն, անհրաժեշտ է ստուգել Min () գործառույթի գործողությունը: Եվ դա կկատարվի փորձարկման մոդուլից: Այս պահին մեր ծրագիրը պատրաստ է փորձարկման:

4. Թեստի ստեղծում

Թեստը ստեղծվում է առանձին նախագծով (Project) լուծման մեջ (Solution): Փորձարկված ծրագիրը չգիտի այդ մասին: Ծրագիրը, որը փորձարկելու է (թեստավորման ծրագիրը), կոչվելու է փորձարկվող ծրագրի գործառույթները: Մեր դեպքում, փորձարկման ծրագիրը կկանչի գործառույթը

int Min (int, int, int);

4.1. Նոր լուծում `լուծմանը

Այս լուծման համար (Solution) դուք պետք է ավելացնել նոր ծրագիր, օգտագործելով հրամանը

Ֆայլի-> Ավելացնել-> ​​Նոր ծրագիր ...

Նոր նախագծի ստեղծման պատուհանը ներկայացված է Նկար 3-ում:

Նկար. 3. Փորձարկման ծրագրի տեսակը նախագծի պատուհան

Պատուհանում ընտրված Visual C # նմուշների խումբ -> Թեստը ընտրված է: Ցուցադրված կաղապարներից ընտրված է «Թեստային նախագիծ» ծրագրի կաղապարը: «Անուն» դաշտում նշվում է ծրագրի մեր ծրագիրը, որը փորձարկելու է մեր ծրագիրը: Դուք պետք է սահմանեք, օրինակ, TestMinApp: Ծրագիրը գտնվում է առանձին թղթապանակում `« E: \ Test \ MinApp »:

Պատուհանում ընտրված Visual C # նմուշների խումբ -> Թեստը ընտրված է:  Ցուցադրված կաղապարներից ընտրված է «Թեստային նախագիծ» ծրագրի կաղապարը:  «Անուն» դաշտում նշվում է ծրագրի մեր ծրագիրը, որը փորձարկելու է մեր ծրագիրը:  Դուք պետք է սահմանեք, օրինակ, TestMinApp:  Ծրագիրը գտնվում է առանձին թղթապանակում `« E: \ Test \ MinApp »:

Նկար. 4. UnitTest1.cs մոդուլի տեքստը: Solution Explorer- ի օգտակար աղյուսակը ցուցադրվում է TestMinApp- ի եւ MinApp նախագծերի հետ

4.2. Լուծման կառուցվածքը

Ինչպես երեւում է Գծապատկեր 4-ից, Solution Explorer- ի օգտակարությունը ցուցադրում է լուծման տարրերի կառուցվածքը, որը պարունակում է երկու նախագիծ.

  • ծրագրի MinApp. Սա նախագծված է Console Application կաղապարն օգտագործելով Min () ֆունկցիայի հետ, որը դուք ցանկանում եք բողոքարկել:
  • TestMinApp ծրագիրը: Այս ծրագիրը նախատեսված է փորձարկել MinApp նախագծի առանձնահատկությունները: Ծրագրի կոդը, որը փորձարկում է Min () ֆունկցիան, կցուցադրվի TestMinApp նախագծի UnitTest1 նախագծի ֆայլ:

Երկու նախագծերը կարող են իրականացվել միմյանցից անկախ:

4.3. «UnitTest1.cs» ֆայլի տեքստը: Attributes [TestMethod] եւ [TestClass]

TestMinApp- ի նախագծում UnitTest1.cs- ի փորձարկման ֆայլը առաջնային հետաքրքրություն է առաջացնում: Այս ֆայլը պարունակում է մեթոդներ, որոնք փորձարկելու են MinApp ծրագրի գործառույթները: The TestMinApp ծրագիրը կարող է պարունակել ցանկացած քանակությամբ ֆայլեր, որոնք պարունակում են թեստեր (օրինակ, UnitTest2.cs, UnitTest3.cs եւ այլն):

MS Visual Studio 2010-ի կողմից ստեղծված UnitTest1.cs ֆայլի ցանկը հետեւյալն է.

օգտագործելով համակարգը; օգտագործելով System.Text; օգտագործելով System.Collections.Generic; օգտագործելով System.Linq; օգտագործելով Microsoft.VisualStudio.TestTools.UnitTesting; {/// <summary> /// Ամբողջական նկարագրությունը UnitTest1 /// </ summary> [TestClass] հանրային դասի UnitTest1 {public UnitTest1 () {// // TODO: Add constructor logic այստեղ //} private TestContext testContextInstance; /// <summary> /// Ստանում կամ սահմանում է քննության համատեքստը: /// </ ամփոփ> հանրային TestContext TestContext {get {return testContextInstance; } set {testContextInstance = արժեք; }} #region Լրացուցիչ փորձարկման հատկանիշներ // կարող եք օգտագործել ձեր թեստերը // // Use ClassInitialize // [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {} // // Օգտագործեք ClassCleanup- ը, որպեսզի գործարկեք կոդը դասի բոլոր թեստերն անցելուց հետո // [ClassCleanup ()] // public static void MyClassCleanup () {} // // Օգտագործել 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 մոդուլի տեքստում փոփոխություններ կատարելու համար: Փորձարկման մեթոդի անունը փոխելը

Դուք կարող եք փոխել մեթոդների անունները եւ ավելացնել նոր մեթոդներ, որոնք նշված են [TestMethod] հատկանիշով UnitTest1.cs մոդուլի մեջ: Հաշվի առնելով UnitTest1.cs մոդուլի տեքստում, անհրաժեշտ է վերանվանել TestMethod1 () մեթոդը TestMin ():

Փոփոխությունների արդյունքում UnitTest1.cs ֆայլի մոդուլի կրճատ տեքստը կլինի.

օգտագործելով համակարգը; օգտագործելով System.Text; օգտագործելով System.Collections.Generic; օգտագործելով System.Linq; օգտագործելով Microsoft.VisualStudio.TestTools.UnitTesting; {/// <summary> /// Ամբողջական նկարագիրը UnitTest1 /// </ summary> [TestClass] հանրային դասի UnitTest1 {... [TestMethod] public void TestMin () {// // TODO: տրամաբանություն այստեղ //}}}

4.5. Միացնել MinApp- ի նախագիծը TestMinApp նախագծին

TestMinApp նախագծից Min () գործառույթին (MinApp նախագծին) մուտք գործելու համար անհրաժեշտ է միացնել այն անունների տարածքը, որտեղ նշված է այս գործառույթը:

Դա անելու համար, նախեւառաջ, պետք է զանգահարեք TestMinApp նախագծի համատեքստային ցանկը: Այնուհետեւ համատեքստի մենյուում անհրաժեշտ է զանգահարել «Add Reference ...» հրամանին (Նկար 5):

» հրամանին (Նկար 5):

Նկար. 5. Թիմ "Add referencse ..."

Արդյունքում, կբացվի Ավելացնել Հավելվածը պատուհանը, որի վրա պետք է ընտրեք MinApp ծրագիրը:

Նկար. 6. «Ավելացնել հղում» պատուհանը: Միացնել MinApp նախագիծը

Ավարտված գործողություններից հետո, MinApp ծրագրի գործառույթները հասանելի կլինեն TestMinApp նախագծում օգտագործելու համար:

Ավարտված գործողություններից հետո, MinApp ծրագրի գործառույթները հասանելի կլինեն TestMinApp նախագծում օգտագործելու համար:

Նկար. 7. Կապակցված MinApp ծրագրի հետ հղումներ էջանիշը

4.6. UnitTest1.cs մոդուլի տեքստում փոփոխություններ կատարելու համար
4.6.1. Adding the 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: Add քննության տրամաբանությունը այստեղ // int min; min = Ծրագիր .Min (3, 4, 5); Assert .AreEqual (2, min); } ...

4.7. UnitTest1.cs մոդուլի տեքստը

UnitTest1.cs մոդուլի ամբողջ տեքստը հետեւյալն է.

օգտագործելով համակարգը; օգտագործելով System.Text; օգտագործելով System.Collections.Generic; օգտագործելով System.Linq; օգտագործելով Microsoft.VisualStudio.TestTools.UnitTesting; օգտագործելով MinApp; {/// <summary> /// Ամբողջական նկարագրությունը UnitTest1 /// </ summary> [TestClass] հանրային դասի UnitTest1 {public UnitTest1 () {// // TODO: Add constructor logic այստեղ //} private TestContext testContextInstance; /// <summary> /// Ստանում կամ սահմանում է քննության համատեքստը: /// </ ամփոփ> հանրային TestContext TestContext {get {return testContextInstance; } set {testContextInstance = արժեք; }} #region Լրացուցիչ փորձարկման հատկանիշներ // կարող եք օգտագործել ձեր թեստերը // // Use ClassInitialize // [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {} // // Օգտագործեք ClassCleanup- ը, որպեսզի գործարկեք կոդը դասի բոլոր թեստերն անցելուց հետո // [ClassCleanup ()] // public static void MyClassCleanup () {} // // Օգտագործել TestInitialize առաջարկել յուրաքանչյուր կոորդինատը վրիպակ առաջադրելու համար // [TestInitialize ()] // public void MyTestInitialize () {} // // Օգտագործեք TestCleanup- ը յուրաքանչյուր ստուգման ավարտից հետո կոդը գործարկելիս // [TestCleanup ()] // public void MyTestCleanup ( ) {} // #endregion [TestMethod] public void TestMin () {// // TODO: Add քննության տրամաբանությունը այստեղ // int min; min = Ծրագիր .Min (3, 4, 5); Assert .AreEqual (2, min); }}}

5. Փորձեք ստուգումը եւ ստուգեք փորձարկման արդյունքը

Microsoft Visual Studio 2010-ում փորձարկումներ են կատարվում Unit testների հետ աշխատելու համար:

Կատարման փորձարկման համար ընտրեք հրամաններից մեկը:

Թեստ -> Run -> Թեստեր ընթացիկ համատեքստում

կամ

Test -> Run -> All Tests in Solution

ինչպես նկարագրված է 8-ում:

Նկար. 8. Զանգահարեք սկիզբը քննության հրամանին եւ դիտեք արդյունքը:

Թեստը վարելուց հետո արդյունքը կարող է դիտվել Փորձարկման արդյունքների պատուհանի ներքեւում: Ինչպես երեւում է թվից, թեստը չի անցել: Սա տրամաբանական է, քանի որ Assert.AreEqual () ֆունկցիան համեմատում ենք 2-րդ եւ 3-րդ թվերին, որոնք տարբեր են: Այստեղ թիվ 2-ը հատուկ ներկայացված է 3-ի փոխարեն:

Եթե ​​թիվ 2-ի փոխարեն մուտքագրեք ճիշտ պատասխանը `համար 3 ​​(նվազագույնը 3, 4, 5), ապա փորձարկումը կփոխանցվի (Նկար 9): Այս դեպքում TestMin () մեթոդի տեքստը հետեւյալն է.

... [TestMethod] public void TestMin () {// // TODO: Add քննության տրամաբանությունը այստեղ // int min; min = Ծրագիր .Min (3, 4, 5); Assert .AreEqual (3, min); } ...

Արդյունքների պատուհանը ներկայացված է Նկար 9-ում:

Նկար. 9. Թեստի արդյունք է գործի համար, եթե ճիշտ պատասխանեք

Այժմ կարելի է եզրակացնել, որ այս գործի Min () գործառույթը ճիշտ է աշխատում:

6. Արդյունքը: Ծրագրերի փոխազդեցություն

Այս փաստաթղթում լուծման մեջ ձեւավորվում են երկու ծրագիր: One MinApp նախագիծը պարունակում է Min () ֆունկցիան, որը ցանկանում եք փորձարկել: Երկրորդ նախագիծը, TestMinApp, պարունակում է փորձարկման մեթոդներ:

Microsoft Visual Studio 2010-ում յուրաքանչյուր ծրագիր սկսվում է տարբեր մենյուի հրամանների միջոցով: Այսպիսով, MinApp- ի ծրագիրը սկսվում է ստանդարտ ճանապարհով, Run menu- ից: Իսկ TestMinApp ծրագիրը մեկնարկում է հատուկ Test մենյուից:

Առնչվող թեմաներ