dit onderwerp beschrijft het stapsgewijze proces van het maken van de eenvoudigste unit test in Microsoft Visual Studio 2010 (C#) Voor Console toepassing. Aan de hand van dit voorbeeld kun je leren hoe je je eigen Unit-tests maakt. Het voorbeeld laat ook zien hoe je de Assert class gebruikt voor het testen.
Inhoud
- Taak
- Instructies
- 1. Maak een toepassing met behulp van de console-Toepassingssjabloon
- 2. Het voorbereiden van de tekst van het programma.cs-module
- 2.1. De Min () – functie
- toevoegen 2.2. Maak de Programmaklasse openbaar
- 3. Lijst van het te testen programma
- 4. Een test
- aanmaken 4.1. Een nieuw project toevoegen aan de oplossing
- 4.2. Structuur van de oplossing
- 4.3. Programmacode van ” UnitTest1.cs ” bestand. Kenmerken en
- 4.4. Het aanbrengen van wijzigingen in de tekst Eenheidst1.cs module. Wijziging van de naam van de testmethode
- 4.5. Het minapp-project verbinden met het TestMinApp-project
- 4.6. Wijziging van Eenheidst1.cs-moduletekst
- 4.6.1. De minapp-naamruimte toevoegen aan UnitTest1.cs
- 4.6.2. Tekst van de TestMin () – methode
- 4.7. De tekst van UnitTest1.cs-module
- 5. Voer de test uit en controleer het testresultaat
- 6. Resultaat. Interactie tussen projecten
- gerelateerde onderwerpen
Zoek andere websites:
taak
ontwikkel een Unit test die de Min () functie test. Stel voor de functie Min () de testmin () – testmethode in. Test het resultaat van de functies.
instructies
1. Maak een toepassing met behulp van de console-Toepassingssjabloon
Run MS Visual Studio 2010. Als u een project wilt maken met behulp van de Console-Toepassingssjabloon, moet u de volgende opdrachtvolgorde aanroepen:
File -> New -> Project...
als gevolg hiervan wordt het nieuwe projectvenster geopend. Selecteer in het venster de “Console Application” sjabloon zoals weergegeven in Figuur 1. De sjabloon wordt geselecteerd op het tabblad Visuele C#.
figuur 1. Het venster “Nieuw Project”. Het selecteren van de “Console toepassing”
⇑
2. Het voorbereiden van de tekst van het programma.cs-module
2.1. Als u de Min () – functie
toevoegt aan de inhoud van de Programmaklasse, moet u de tekst van de Min () – functie toevoegen. De functie wordt verklaard als openbaar en statisch. De tekst van de Min () – functie
Figuur 2. Het MS Visual Studio venster, het module ” programma.cs”
⇑
2.2. Maak de Programmaklasse openbaar
om toegang te krijgen tot de Min () functie van de Programmaklasse, moet u deze klasse openbaar maken. Om dit te doen, moet u vóór de class declaratie het publieke sleutelwoord instellen.
...namespace MinApp{ public class Program { // методы класса // ... }}...
daarna is het geteste programma klaar.
⇑
3. Lijst van het te testen programma
op het moment is de programmacode van het te testen programma als volgt:
using System;using System.Collections.Generic;using System.Linq;using 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; return min; } static void Main(string args) { Console.WriteLine("Demo of Unit-testing in C#."); } }}
omdat dit programma zal worden getest vanuit een andere testmodule, dan in de Main() functie, hoeft u niets anders te typen. Aangezien u, in overeenstemming met de toestand van de taak, de werking van de Min () – functie moet testen. En dit zal al gedaan worden vanuit de testmodule. Op dit moment is ons programma klaar voor testen.
⇑
4. Een test
aanmaken de test wordt gemaakt door een afzonderlijk project in de oplossing. Het programma dat u test, weet hier niets van. Het testprogramma dat zal testen roept de functies van het programma dat wordt getest. In ons geval zal het testprogramma de functie aanroepen
int Min(int, int, int);
⇑
4.1. Een nieuw project toevoegen aan de oplossing
voor deze oplossing wordt een nieuw project toegevoegd met het commando
File->Add->New Project...
het venster voor het maken van een nieuw project wordt getoond in Figuur 3.
Figuur 3. Het venster voor het maken van een project van Type Test Project
in het venster moet u de sjablonen groep
Visual C# -> Test
selecteren uit de weergegeven sjablonen wordt het projectsjabloon “Test Project” geselecteerd. Het veld “Naam” geeft de naam aan van het project dat ons programma zal testen. U moet bijvoorbeeld TestMinApp instellen. Het project bevindt zich in een aparte map “E:\Test\MinApp”.
Figuur 4. De ” UnitTest1.cs ” bestand. Het venster Solution Explorer met de TestMinApp-en MinApp-projecten weergegeven
⇑
4.2. Structuur van oplossing
zoals u kunt zien in Figuur 4, geeft Solution Explorer de structuur van de Oplossingsitems weer, die twee projecten bevat:
- het MinApp project. Dit project is gemaakt met behulp van het sjabloon” Console Application ” met de te testen Min () – functie;
- het TestMinApp-project. Dit project is ontworpen om de functies van het MinApp-project te testen. De programmacode die de Min () – functie test, wordt toegevoegd aan het projectbestand UnitTest1 van het TestMinApp-project.
beide projecten kunnen onafhankelijk van elkaar worden uitgevoerd.
⇑
4.3. Programmacode van ” UnitTest1.cs ” bestand. Attributen en
In het TestMinApp-project, de UnitTest1.cs-testbestand is van primair belang. Dit bestand bevat methoden die de functies van het MinApp-project zullen testen. Het TestMinApp-project kan een willekeurig aantal bestanden bevatten die tests bevatten (bijvoorbeeld UnitTest2.cs, UnitTest3.cs, enz.).
programmacode van ” UnitTest1.cs ” bestand, gegenereerd door MS Visual Studio 2010, is als volgt:
using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { public UnitTest1() { // // TODO: Add constructor logic here // } private TestContext testContextInstance; /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } #region Additional test attributes // // You can use the following additional attributes as you write your tests: // // Use ClassInitialize to run code before running the first test in the class // // public static void MyClassInitialize(TestContext testContext) { } // // Use ClassCleanup to run code after all tests in a class have run // // public static void MyClassCleanup() { } // // Use TestInitialize to run code before running each test // // public void MyTestInitialize() { } // // Use TestCleanup to run code after each test has run // // public void MyTestCleanup() { } // #endregion public void TestMethod1() { // // TODO: Add test logic here // } }}
zoals u kunt zien aan de bovenstaande code, bevat het bestand een klasse genaamd UnitTest1. De klasse omvat een openbare methode genaamd TestMethod1 ().Voordat de methode TestMethod1() wordt toegepast, wordt het attribuut geplaatst. Dit betekent dat in het lichaam van de methode nodig om code die de functies van MinApp project zal testen schrijven.
in de klasse kunt u een willekeurig aantal methoden invoeren die verschillende functies van verschillende modules testen. Het belangrijkste is dat deze methoden werden opgemerkt door het attribuut .
⇑
4.4. Het aanbrengen van wijzigingen in de tekst Eenheidst1.cs module. De naam van de testmethode veranderen
u kunt de methodenamen wijzigen en nieuwe methoden toevoegen die gemarkeerd zijn met het attribuut in de UnitTest1.cs module. Met dit in het achterhoofd, in UnitTest1.cs, de testmethod1 () methode moet worden hernoemd naar TestMin ().
nadat de wijzigingen zijn aangebracht, de verkorte tekst van UnitTest1.cs-bestand module zal eruit zien als:
using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { ... public void TestMin() { // // TODO: Add test logic here // } }}
⇑
4.5. Het minapp-project verbinden met het TestMinApp-project
om toegang te krijgen tot de Min () – functie (het MinApp-project) van het TestMinApp-project, moet u de naamruimte mounten waarin deze functie is gedeclareerd.
om dit te doen, moet u eerst het contextmenu voor het TestMinApp-project aanroepen. Vervolgens moet u in het contextmenu het commando “referentie toevoegen …” (Figuur 5) aanroepen.
Figuur 5. De “Toevoegen Referencse…” commando
Als een resultaat, de “Add Reference” venster geopend, waarin u de MinApp project.
Figuur 6. Het venster “referentie toevoegen”. MinApp-projectverbinding
na de uitgevoerde acties zullen de MinApp-projectfuncties beschikbaar zijn voor gebruik in het TestMinApp-project.
Figuur 7. Het tabblad “referenties” met het aangesloten MinApp-project
⇑
4.6. Wijziging van Eenheidst1.cs-moduletekst
4.6.1. De minapp-naamruimte toevoegen aan UnitTest1.cs
in deze stap moet u de minapp-naamruimte toevoegen aan UnitTest1.C ’s die gebruik maken van de “gebruiksrichtlijn”:
using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;using MinApp;namespace TestMinApp{ ...}
⇑
4.6.2. Tekst van de methode TestMin ()
in de tekst van de methode TestMin() moet u de volgende code invoeren:
...public void TestMin(){ // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(2, min);}...
⇑
4.7. De tekst van UnitTest1.cs-module
de tekst van alle eenheden 1.cs module is als volgt:
using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;using MinApp;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { public UnitTest1() { // // TODO: Add constructor logic here // } private TestContext testContextInstance; /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } #region Additional test attributes // // You can use the following additional attributes as you write your tests: // // Use ClassInitialize to run code before running the first test in the class // // public static void MyClassInitialize(TestContext testContext) { } // // Use ClassCleanup to run code after all tests in a class have run // // public static void MyClassCleanup() { } // // Use TestInitialize to run code before running each test // // public void MyTestInitialize() { } // // Use TestCleanup to run code after each test has run // // public void MyTestCleanup() { } // #endregion public void TestMin() { // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(2, min); } }}
⇑
5. Voer het testresultaat
uit in Microsoft Visual Studio 2010 voor Unit-tests is een speciaal menu ‘Test’ geïmplementeerd.
om de test uit te voeren, moet u een van de opdrachten
Test -> Run -> Tests in Current Context
of
Test -> Run -> All Tests in Solution
selecteren zoals weergegeven in Figuur 8.
bekijken Figuur 8. Het testcommando aanroepen en het resultaat
weergeven nadat de test is gestart, kan het resultaat links in het Testverkenner-venster worden weergegeven. Zoals uit Figuur 8 blijkt, is de test niet geslaagd. Dit is logisch, omdat in de functie beweren.AreEqual () we vergelijken de getallen 2 en 3, die verschillen. Hier wordt het nummer 2 speciaal ingevoerd in plaats van het nummer 3.
als u in plaats van nummer 2 het juiste antwoord invoert-nummer 3 (minimum tussen 3, 4, 5), wordt de test ingediend (figuur 9). In dit geval is de tekst van de testmin () – methode als volgt:
...public void TestMin(){ // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(3, min);}...
het resultaatvenster wordt weergegeven in Figuur 9.
invoert figuur 9. Testresultaat voor het geval wanneer u het juiste antwoord
invoert, kunnen we nu concluderen dat de functie Min() correct werkt voor dit geval.
⇑
6. Resultaat. Interactie tussen projecten
bij deze taak bestaat de oplossing uit twee projecten. Eén MinApp-project bevat de te testen Min () – functie. Het tweede TestMinApp-project bevat testmethoden. In Microsoft Visual Studio 2010 wordt elk van de projecten uitgevoerd met behulp van verschillende menu-opdrachten. Zo, de MinApp project wordt uitgevoerd in de standaard manier van het menu Run. En het TestMinApp project wordt gestart vanuit een speciaal ‘Test’ menu.