dette emne beskriver den trinvise proces med at oprette den enkleste enhedstest i Microsoft Visual Studio 2010 (C#) til Konsolapplikation. Ved hjælp af dette eksempel kan du lære at oprette dine egne enhedstest. Eksemplet viser også, hvordan man bruger Assert-klassen til test.

Indhold

  • Opgave
  • Instruktioner
    • 1. Opret et program ved hjælp af Konsolapplikationsskabelonen
    • 2. Forberedelse af programmets tekst.cs-modul
      • 2.1. Tilføjelse af funktionen Min ()
      • 2.2. Gør Programklassen offentlig
    • 3. Liste over programmet under test
    • 4. Oprettelse af en test
      • 4.1. Tilføjelse af et nyt projekt til løsningen
      • 4.2. Struktur af opløsning
      • 4.3. Programkode for ” UnitTest1.cs ” fil. Attributter og
      • 4.4. Foretage ændringer i teksten UnitTest1.cs modul. Ændring af navnet på testmetoden
      • 4.5. Tilslutning af minapp-projektet til TestMinApp-projektet
      • 4.6. Ændring af UnitTest1.cs modul tekst
        • 4.6.1. Tilføjelse af minapp namespace til UnitTest1.cs
        • 4.6.2. TestMin () – metodens tekst
      • 4.7. Teksten til UnitTest1.cs-modul
    • 5. Kør test og kontrol testresultat
    • 6. Resultat. Interaktion mellem projekter
  • relaterede emner

Søg andre hjemmesider:

opgave

for en konsol applikationstype program, udvikle en enhed test, der tester min() funktion. For min () – funktionen skal du indstille TestMin () – testmetoden. Test funktionerne resultat.

instruktioner

1. Opret et program ved hjælp af Konsolapplikationsskabelonen

Kør MS Visual Studio 2010. For at oprette et projekt ved hjælp af Konsolapplikationsskabelonen skal du ringe til følgende kommandosekvens:

File -> New -> Project...

som et resultat åbnes det nye projektvindue. I vinduet skal du vælge skabelonen “Console Application” som vist i Figur 1. Skabelonen er valgt i fanen Visual C#.

 C#. Vinduer Former. Vinduet" Nyt projekt". Valg af "Konsolapplikation"

Figur 1. Vinduet” Nyt projekt”. Valg af “Konsolapplikation”

2. Forberedelse af programmets tekst.cs-modul

2.1. Tilføjelse af min () – funktionen

i programklassens krop skal du tilføje teksten til min () – funktionen. Funktionen er erklæret som offentlig og statisk. Teksten til funktionen Min ()

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

figur 2. MS Visual Studio-vinduet, modulet ” Program.cs”

2.2. Gør Programklassen offentlig

for at få adgang til min () – funktionen i Programklassen skal du offentliggøre denne klasse. For at gøre dette skal du indstille det offentlige søgeord før klassedeklarationen.

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

derefter er det testede program klar.

3. Notering af programmet under test

i øjeblikket er programkoden for 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 program vil blive testet fra et andet testmodul, så i hovedfunktionen (), behøver du ikke at skrive noget andet. Da du i overensstemmelse med opgavens tilstand skal teste funktionen af min () – funktionen. Og dette vil allerede ske fra testmodulet. I øjeblikket er vores program klar til test.

4. Oprettelse af en test

testen oprettes af et separat projekt i løsningen. Det program, du tester, ved ikke om dette. Testprogrammet, der tester, kalder funktionerne i det program, der testes. I vores tilfælde kalder testprogrammet funktionen

int Min(int, int, int);

4.1. Tilføjelse af et nyt projekt til løsningen

til denne løsning tilføjes et nyt projekt ved hjælp af kommandoen

File->Add->New Project...

vinduet til oprettelse af et nyt projekt vises i figur 3.

 C#. Vinduer Danner Ansøgning. Vinduet til oprettelse af et projekt af type Test projekt

figur 3. Vinduet til oprettelse af et projekt af type Test Project

i vinduet skal du vælge skabelongruppen

Visual C# -> Test

fra de viste skabeloner vælges projektskabelonen “Test Project”. Feltet” Navn ” angiver navnet på det projekt, der tester vores program. Du skal indstille for eksempel TestMinApp. Projektet er placeret i en separat mappe “E:\Test\MinApp”.

 C#. "UnitTest1.cs " fil. Løsningsudforskningsvinduet med testminapp-og MinApp-projekterne vises

figur 4. “UnitTest1.cs ” fil. Løsningsudforskningsvinduet med testminapp-og MinApp-projekterne vist

4.2. Struktur af løsning

som du kan se i figur 4, viser Solution items-strukturen, som indeholder to projekter:

  • minapp-projektet. Dette er et projekt oprettet ved hjælp af skabelonen” Console Application ” med min () – funktionen, der skal testes;
  • TestMinApp-projektet. Dette projekt er designet til at teste funktionerne i minapp-projektet. Programkoden, der tester min () – funktionen, føjes til projektfilen UnitTest1 i TestMinApp-projektet.

begge projekter kan udføres uafhængigt af hinanden.

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

i TestMinApp-projektet, UnitTest1.cs testfil er af primær interesse. Denne fil indeholder metoder, der tester funktionerne i minapp-projektet. TestMinApp-projektet kan indeholde et hvilket som helst antal filer, der indeholder test (for eksempel UnitTest2.cs, UnitTest3.cs osv.).

programkode for ” UnitTest1.cs ” fil, genereret af 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 ovenstående kode, indeholder filen en klasse med navnet UnitTest1. Klassen involverer en offentlig metode ved navn TestMethod1 ().Før testmethod1 () – metoden implementeres, placeres attributten. Det betyder, at i kroppen af metoden nødt til at skrive kode, der vil teste funktionerne i minapp projekt.

i klassen kan du indtaste et hvilket som helst antal metoder, der tester forskellige funktioner fra forskellige moduler. Det vigtigste er, at disse metoder blev bemærket af attributten .

4.4. Foretage ændringer i teksten UnitTest1.cs modul. Ændring af navnet på testmetoden

du kan ændre metodenavne og tilføje nye metoder, der er markeret med attributten i UnitTest1.cs modul. Med dette i tankerne, i UnitTest1.cs, TestMethod1 () – metoden skal omdøbes til TestMin().

efter ændringerne er foretaget, den forkortede tekst af UnitTest1.cs-filmodul vil se ud:

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. Tilslutning af minapp-projektet til TestMinApp-projektet

for at få adgang til min () – funktionen (minapp-projektet) fra TestMinApp-projektet skal du montere det navneområde, hvor denne funktion er erklæret.

for at gøre dette skal du først ringe til kontekstmenuen til TestMinApp-projektet. Så i kontekstmenuen skal du ringe til kommandoen “Tilføj Reference …” (figur 5).

 C#. Enhed-test oprettelse. "Tilføj Reference..."kommando

figur 5. Kommandoen” Tilføj reference… “

som et resultat åbnes vinduet” Tilføj Reference”, hvor du vælger minapp-projektet.

C#. Unit-test oprettelse af vinduet "Tilføj Reference". Minapp projekt tilslutning

figur 6. Vinduet “Tilføj Reference”. Minapp project connection

efter de udførte handlinger vil minapp project-funktionerne være tilgængelige til brug i TestMinApp-projektet.

 C#. Vinduer Danner Ansøgning. Fanen "Referencer" med det tilsluttede minapp-projekt

Figur 7. Fanen” Referencer ” med det tilsluttede minapp-projekt

4.6. Ændring af UnitTest1.cs modul tekst
4.6.1. Tilføjelse af minapp namespace til UnitTest1.cs

i dette trin skal du tilføje minapp-navneområdet til UnitTest1.cs ved hjælp af’ brug ‘ – 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 af TestMin () – metoden

i teksten til TestMin () – metoden skal du indtaste 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 UnitTest1.cs modul 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. Kør test-og kontroltestresultatet

i Microsoft Visual Studio 2010 til enhedstest implementeres en speciel menu ‘Test’.

for at køre testen skal du vælge en af kommandoerne

Test -> Run -> Tests in Current Context

eller

Test -> Run -> All Tests in Solution

som vist i figur 8.

 C#. Enhed-test oprettelse. Kalder testkommandoen og ser resultatet

figur 8. Opkald til testkommandoen og visning af resultatet

efter start af testen kan resultatet ses til venstre i Testudforskningsvinduet. Som det fremgår af figur 8, er testen ikke bestået. Dette er logisk, fordi i funktionen hævde.Vi sammenligner tallene 2 og 3, som er forskellige. Her indtastes nummer 2 specielt i stedet for nummer 3.

hvis du i stedet for nummer 2 indtaster det rigtige svar – nummer 3 (minimum mellem 3, 4, 5), vil testen blive indsendt (figur 9). I dette tilfælde 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#. Enhed-test oprettelse. Testresultat for sagen, når du indtaster det rigtige svar

figur 9. Testresultat for sagen, når du indtaster det rigtige svar

nu kan vi konkludere, at min () – funktionen fungerer korrekt for denne sag.

6. Resultat. Interaktion mellem projekter

i denne opgave involverer løsningen to projekter. Et minapp-projekt indeholder min () – funktionen, der skal testes. Det andet TestMinApp-projekt indeholder testmetoder. I Microsoft Visual Studio 2010 køres hvert af projekterne ved hjælp af forskellige menukommandoer. Så minapp-projektet køres på standard måde fra menuen Kør. Og TestMinApp-projektet lanceres fra en speciel ‘Test’ – menu.

Leave a comment

Din e-mailadresse vil ikke blive publiceret.