Dette emnet beskriver den trinnvise prosessen med å opprette den enkleste enhetstesten I Microsoft Visual Studio 2010 (C#) For Konsollprogram. Ved hjelp av dette eksemplet kan du lære å lage Din Egen Enhet-tester. Eksemplet viser også hvordan Du bruker Assert-klassen til testing.

Innhold

  • Oppgave
  • Instruksjoner
    • 1. Opprett et program ved hjelp Av Konsollprogrammalen
    • 2. Forbereder teksten Til Programmet.cs-modul
      • 2.1. Legge til min () – funksjonen
      • 2.2. Gjør programmet klasse offentlig
    • 3. Oppføring av programmet under test
    • 4. Opprette en test
      • 4.1. Legge til et nytt prosjekt i løsningen
      • 4.2. Struktur Av Løsning
      • 4.3. Programkode for » UnitTest1.cs » fil. Attributter og
      • 4.4. Gjør endringer i tekstenhetenst1.cs-modul. Endre navnet på testmetoden
      • 4.5. Koble MinApp prosjektet Til TestMinApp prosjektet
      • 4.6. Endring Av UnitTest1.cs modul tekst
        • 4.6.1. Legge Til MinApp-navneområdet Til UnitTest1.cs
        • 4.6.2. Tekst Av TestMin () – metoden
      • 4.7. Teksten Til UnitTest1.cs-modul
    • 5. Kjør testen og kontroller testresultatet
    • 6. Resultat. Samspill mellom prosjekter
  • Beslektede emner

Søk på andre nettsteder:

Oppgave

utvikle En Enhetstest Som tester min () – funksjonen for Et Konsollprogramtype-program. For Min () – funksjonen, sett TestMin () testmetoden. Test funksjonene resultatet.

Instruksjoner

1. Opprette et program ved hjelp Av Programmalen For Konsollen

Kjør MS Visual Studio 2010. For å opprette et prosjekt ved Hjelp Av Konsollprogrammalen må du ringe følgende kommandosekvens:

File -> New -> Project...

Som et resultat åpnes Det Nye Prosjektvinduet. I vinduet velger du malen» Konsollprogram » som vist i Figur 1. Malen er valgt I Kategorien Visual C#.

C#. Windows Skjemaer. Vinduet" Nytt Prosjekt". Velger "Konsollprogrammet"

Figur 1. Vinduet» Nytt Prosjekt». Velger «Konsollprogrammet»

2. Forbereder teksten Til Programmet.cs-modul

2.1. Når Du legger til min () – funksjonen

i programmets klasse, må du legge til teksten Til min () – funksjonen. Funksjonen er erklært som offentlig og statisk. Teksten Til min () – funksjonen

 C#. MS Visual Studio-vinduet, modulen " Program.cs"

Figur 2. MS Visual Studio-vinduet, modulen » Program.cs»

2.2. Gjør Programklassen offentlig

For å få tilgang Til min () – funksjonen I Programklassen må du gjøre denne klassen offentlig. For å gjøre dette, før klassedeklarasjonen, må du angi det offentlige søkeordet.

...namespace MinApp{ public class Program { // методы класса // ... }}...

Deretter er det testede programmet klart.

3. Oppføring av programmet under test

for øyeblikket er programkoden til programmet under test som følger:

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#."); } }}

Fordi dette programmet vil bli testet fra en annen testmodul, trenger Du ikke å skrive noe annet i Hovedfunksjonen (). Siden, i samsvar med oppgavens tilstand, må du teste driften Av min () – funksjonen. Og dette vil allerede bli gjort fra testmodulen. For øyeblikket er vårt program klar for testing.

4. Opprette en test

testen er opprettet av et eget prosjekt i Løsningen. Programmet du tester vet ikke om dette. Testprogrammet som vil teste kaller funksjonene til programmet som blir testet. I vårt tilfelle vil testprogrammet ringe funksjonen

int Min(int, int, int);

4.1. Legge til et nytt prosjekt i løsningen

for denne løsningen legges et nytt prosjekt til ved hjelp av kommandoen

File->Add->New Project...

vinduet for å opprette et nytt prosjekt er vist i Figur 3.

 C#. Windows Skjemaer Søknad. Vinduet for å lage et prosjekt Av Typen Testprosjekt

Figur 3. Vinduet for å opprette et prosjekt Av Typen Testprosjekt

i vinduet må du velge malgruppen

Visual C# -> Test

fra de viste malene er prosjektmalen «Test Project» valgt. Feltet» Navn » angir navnet på prosjektet som vil teste vårt program. Du må sette For Eksempel TestMinApp. Prosjektet ligger i en egen mappe «E:\Test\MinApp».

C#. "UnitTest1.cs " fil. Solution Explorer-vinduet med TestMinApp-og MinApp-prosjektene vises

Figur 4. «UnitTest1.cs » fil. Solution Explorer-vinduet med TestMinApp-og MinApp-prosjektene vises

4.2. Struktur Av Løsning

Som Du kan se I Figur 4, Viser Solution Explorer Løsningselementstrukturen, som inneholder to prosjekter:

  • MinApp-prosjektet. Dette er et prosjekt opprettet ved hjelp av» Console Application » mal Med Min () – funksjonen som skal testes;
  • TestMinApp prosjektet. Dette prosjektet er laget for å teste funksjonene I MinApp prosjektet. Programkoden som tester min () – funksjonen vil bli lagt til prosjektfilen UnitTest1 Av TestMinApp prosjektet.

begge prosjektene kan utføres uavhengig av hverandre.

4.3. Programkode for » UnitTest1.cs » fil. Attributter og

I TestMinApp-prosjektet, UnitTest1.cs-testfilen er av primær interesse. Denne filen inneholder metoder som vil teste funksjonene I MinApp prosjektet. Den TestMinApp prosjektet kan inneholde en rekke filer som inneholder tester (For Eksempel UnitTest2.cs, UnitTest3.cs, etc.).

Programkode for » UnitTest1.cs » fil, generert AV MS Visual Studio 2010, er som følger:

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 // } }}

som du kan se fra koden ovenfor, inneholder filen en klasse som heter UnitTest1. Klassen innebærer en offentlig metode kalt TestMethod1 ().Før du implementerer TestMethod1 () – metoden, er attributtet plassert. Dette betyr at i kroppen av metoden må skrive kode som vil teste funksjonene Til MinApp prosjektet.

i klassen kan du angi et hvilket som helst antall metoder som vil teste forskjellige funksjoner fra forskjellige moduler. Det viktigste er at disse metodene ble lagt merke til av attributtet .

4.4. Gjør endringer i tekstenhetenst1.cs-modul. Endre navnet på testmetoden

du kan endre metodenavn og legge til nye metoder som er merket med attributtet I Enhetentest1.cs-modul. Med dette i tankene, I UnitTest1.cs, TestMethod1 () – metoden skal omdøpes Til TestMin ().

etter at endringene er gjort, forkortes teksten Til UnitTest1.cs-filmodulen vil se ut:

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. Koble MinApp-prosjektet til TestMinApp-prosjektet

for å få tilgang Til min () – funksjonen (MinApp-prosjektet) Fra TestMinApp-prosjektet, må du montere navneområdet der denne funksjonen er erklært.

for å gjøre dette må du først ringe til kontekstmenyen For TestMinApp-prosjektet. Deretter i kontekstmenyen må du ringe kommandoen «Legg Til Referanse …» (Figur 5).

C#. Enhet-test opprette. "Legg Til Referencse..."kommando

Figur 5. Kommandoen» Legg Til Referanse… »

Som et resultat åpnes Vinduet «Legg Til Referanse», der Du velger minapp-prosjektet.

C#. Enhet-test opprette vinduet" Legg Til Referanse". MinApp prosjekt tilkobling

Figur 6. Vinduet» Legg Til Referanse». MinApp project connection

Etter de utførte handlingene vil MinApp project-funksjonene være tilgjengelige for Bruk I TestMinApp-prosjektet.

C#. Windows Skjemaer Søknad. "Referanser" - fanen med det tilkoblede MinApp-prosjektet

Figur 7. Kategorien» Referanser » med det tilkoblede MinApp-prosjektet

4.6. Endring Av UnitTest1.cs modul tekst
4.6.1. Legge Til MinApp-navneområdet Til UnitTest1.cs

i dette trinnet må du legge Til minapp-navneområdet Til UnitTest1.cs bruker ‘bruke’ direktivet:

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 Av TestMin () – metoden

i teksten Til TestMin () – metoden må du skrive inn følgende kode:

...public void TestMin(){ // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(2, min);}...

4.7. Teksten Til UnitTest1.cs-modul

teksten til alle Enheter1.cs-modulen er som følger:

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. Kjør testen og sjekke testresultatet

I Microsoft Visual Studio 2010 For Enhetstester implementeres en spesiell Meny ‘Test’.

for å kjøre testen må du velge en av kommandoene

Test -> Run -> Tests in Current Context

eller

Test -> Run -> All Tests in Solution

som vist i Figur 8.

C#. Enhet-test opprette. Kaller testkommandoen og ser resultatet

Figur 8. Kaller testkommandoen og ser resultatet

etter at testen er startet, kan resultatet vises til venstre i Testutforsker-vinduet. Som Det fremgår av Figur 8, er testen ikke bestått. Dette er logisk, fordi i funksjonen Hevder.AreEqual () vi sammenligner tallene 2 og 3, som er forskjellige. Her er nummer 2 spesielt oppgitt i stedet for nummer 3.

hvis du i stedet for nummer 2 angir riktig svar-nummer 3 (minimum mellom 3, 4, 5), vil testen bli sendt inn (Figur 9). I dette tilfellet vil teksten Til TestMin () – metoden være som følger:

...public void TestMin(){ // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(3, min);}...

resultatvinduet er vist i Figur 9.

C#. Enhet-test opprette. Testresultat for saken når du skriver inn riktig svar

Figur 9. Testresultat for saken når du skriver inn riktig svar

Nå kan Vi konkludere med At Min () – funksjonen fungerer riktig for denne saken.

6. Resultat. Samspill mellom prosjekter

i denne oppgaven innebærer løsningen to prosjekter. En MinApp prosjektet inneholder Min () – funksjonen som skal testes. Det andre TestMinApp-prosjektet inneholder testmetoder. I Microsoft Visual Studio 2010 kjøres hvert av prosjektene ved hjelp av ulike menykommandoer. Så kjøres minapp-prosjektet på standard måte fra Run-menyen. Og TestMinApp prosjektet er lansert fra en spesiell ‘Test’ meny.

Leave a comment

Din e-postadresse vil ikke bli publisert.