- Բովանդակությունը
- Իրականացում
- 2. Ծրագրի նախապատրաստական նյութերի տեքստի պատրաստում
- 2.2. Դարձնել ծրագրի դասի հանրությունը
- 3. Փորձարկված ծրագրի ցանկը
- 4. Թեստի ստեղծում
- 4.1. Նոր լուծում `լուծմանը
- 4.2. Լուծման կառուցվածքը
- 4.3. «UnitTest1.cs» ֆայլի տեքստը: Attributes [TestMethod] եւ [TestClass]
- 4.4. UnitTest1 մոդուլի տեքստում փոփոխություններ կատարելու համար: Փորձարկման մեթոդի անունը փոխելը
- 4.5. Միացնել MinApp- ի նախագիծը TestMinApp նախագծին
- 4.6. UnitTest1.cs մոդուլի տեքստում փոփոխություններ կատարելու համար
- 4.6.2. TestMin () մեթոդի տեքստը
- 4.7. UnitTest1.cs մոդուլի տեքստը
- 5. Փորձեք ստուգումը եւ ստուգեք փորձարկման արդյունքը
- 6. Արդյունքը: Ծրագրերի փոխազդեցություն
Այս թեման նկարագրում է Microsoft Visual Studio 2010-ի (C #) պարզ միավորի թեստի ստեղծման քայլ առ քայլ գործընթացը, որը նման է Վահանակի կիրառման: Օգտագործելով այս օրինակը, կարող եք իմանալ, թե ինչպես ստեղծել ձեր սեփական միավորի թեստերը: Օրինակը նաեւ ցույց է տալիս գործառույթների գործարկման փորձարկման համար Assert դասի օգտագործումը:
Բովանդակությունը
Խնդիրի վիճակը
Վահանակի կիրառման նման հավելվածի համար մշակեք Unit test, որը ստուգում է Min () գործառույթի գործողությունը, որը սահմանում է երեք թվերի առավելագույն տարրը:
Min () գործառույթի համար փորձարկման մեթոդը սահմանեք TestMin (): Ստուգեք գործառույթը:
Իրականացում
1. Ստեղծեք ծրագիր, օգտագործելով Վահանակի կիրառման կաղապարը
Գործարկեք MS Visual Studio 2010-ի կատարման համար: Կաղապարային հավելվածի օրինակին օգտագործելու համար նախագիծը ստեղծելու համար պետք է հրավիրել հրամանների հաջորդ հաջորդականությունը.
Ֆայլի -> Նոր -> Ծրագիր ...
Արդյունքում Նոր Ծրագրի պատուհանը բացվում է: Պատուհանում ընտրեք Վահանակների կիրառման կաղապարը, ինչպես ցույց է տրված Նկար 1-ում: Կաղապարը ընտրվում է Visual C # էջում:
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; }
Նկար. 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 »:
Նկար. 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. Թիմ "Add referencse ..."
Արդյունքում, կբացվի Ավելացնել Հավելվածը պատուհանը, որի վրա պետք է ընտրեք MinApp ծրագիրը:
Նկար. 6. «Ավելացնել հղում» պատուհանը: Միացնել MinApp նախագիծը
Ավարտված գործողություններից հետո, 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 մենյուից: