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#.

 C#. Windows Formulieren. Het venster "Nieuw Project". Het selecteren van de "Console toepassing"

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

 C#. Het MS Visual Studio venster, het module " programma.cs"

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.

 C#. Windows Formulieren Toepassing. Het venster voor het maken van een project van typeproefproject

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”.

C#. De " UnitTest1.cs " bestand. Het venster Solution Explorer met de projecten TestMinApp en MinApp weergegeven

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.

 C#. Unit-test maken. De " Referencse Toevoegen..."opdracht

Figuur 5. De “Toevoegen Referencse…” commando

Als een resultaat, de “Add Reference” venster geopend, waarin u de MinApp project.

 C#. Unit-test het aanmaken van het" Add Reference " venster. Minapp-projectverbinding

Figuur 6. Het venster “referentie toevoegen”. MinApp-projectverbinding

na de uitgevoerde acties zullen de MinApp-projectfuncties beschikbaar zijn voor gebruik in het TestMinApp-project.

 C#. Windows Formulieren Toepassing. Het tabblad" referenties " met het aangesloten MinApp-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.

 C#. Unit-test maken. Het testcommando aanroepen en het resultaat

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.

 C#. Unit-test maken. Testresultaat voor het geval dat u het juiste antwoord

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.

Reageren

Het e-mailadres wordt niet gepubliceerd.