ÜHIKUTE TESTIMINE Asp.Netis: täielik õpetus
⚡ Nutikas kokkuvõte
ASP.NET-i rakenduse ühiktestimine Visual Studios algab ühiktesti projektiga, ühendatakse viide sihtprojektiga, lisatakse MSTest [TestClass] ja [TestMethod] atribuudid ning kutsutakse välja Assert-meetodeid, et tõestada klasside kavandatud käitumist.
Testimine on iga programmeerimiskeele oluline aspekt. Testimine ASP.NET rakenduste jaoks on see võimalik Visual Studio abil.
Visual Studiot kasutatakse testkoodi loomiseks. Seda kasutatakse ka ASP.NET-i rakenduse testkoodi käivitamiseks. Sel viisil on ASP.NET-i rakenduses vigade kontrollimine lihtne. Visual Studios on testimismoodulil valmisfunktsioonid. ASP.NET-i projekti saab kohe testida.
Sissejuhatus ASP.NET-i testimisse
ASP.NET-i projekti testimise esimene tase on ühikutaseme testimine. See test on rakenduse funktsionaalsuse test. Testimise eesmärk on tagada rakenduse ootuspärane käitumine. ASP.NET-is on esimene ülesanne luua Visual Studios testprojekt. Testprojekt sisaldab rakenduse testimiseks vajalikku koodi.
Vaatleme allolevat veebilehte. Lehel on meil teade „Guru99 – ASP.NET”. Kuidas saame nüüd kinnitada, et ASP.NET-projekti käivitamisel kuvatakse õige teade? Selleks lisatakse ASP.NET-lahendusele (kasutatakse veebipõhiste rakenduste arendamiseks) testprojekt. See testprojekt tagaks, et kasutajale kuvatakse õige teade.
Vaatame nüüd lähemalt, kuidas ASP.NET-is testimisega töötada.
.NET-i üksuse testimisprojekti loomine
Enne testprojekti loomist peame tegema alltoodud kõrgetasemelised toimingud.
- Kasutage meie varasemates jaotistes kasutatud demorakendust. See on meie rakendus, mida tuleb testida.
- Lisame demorakendusele uue klassi. See klass sisaldab stringi nimega 'Guru99 – ASP.NET.' Seda stringi testitakse meie testimisprojektis.
- Lõpuks loome testimisprojekti. Seda kasutatakse ASP.NET rakenduse testimiseks.
Järgime seega ülaltoodud kõrgetasemelisi samme ja vaatame, kuidas testimist rakendada.
Step 1) Veenduge, et DemoApplication oleks Visual Studios avatud.
Step 2) Lisagem nüüd demorakendusse uus klass. See klass sisaldab stringi nimega 'Guru99 – ASP.NET.' Seda stringi testitakse meie testimisprojektis.
Uue klassi lisamiseks järgige allolevat sammu.
- Paremklõpsake Visual Studios Solution Exploreris 'DemoApplication'i.
- Valige kontekstimenüüst suvand Lisa->Klass.
Step 3) Selles sammus
- Andke uuele klassile nimi "Tutorial.cs".
- Faili demorakendusse lisamiseks klõpsake nuppu "Lisa".
Nüüd lisatakse faili "DemoApplication" uus klass.
Step 4) Ava uus Tutorial.cs fail rakendusest „DemoApplication“. Lisa string „Guru99 – ASP.NET.
Faili avamiseks topeltklõpsake Solution Exploreris failil Tutorial.cs.
Failile on vaikekood juba kirjutatud. Ärge muretsege selle koodi pärast, vaid lisage allolev koodirida.
namespace DemoApplication { public class Tutorial { public String Name; public Tutorial() { Name = "Guru99 - ASP.Net"; } } }
Code Selgitus:-
- Muutuja Name on tüüpi string.
- Lõpuks, Tutorial klassi konstruktoris, määrake Name muutujale väärtus. Väärtus omistatakse „Guru99 – ASP.NET”
Step 5) Nüüd minge faili demo.aspx ja lisage koodiread, et kuvada tekst „Guru99 – ASP.NET.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <% DemoApplication.Tutorial tp=new DemoApplication.Tutorial();%> <%=tp.Name%> </div> </form> </body> </html>
Code Selgitus:-
- Esimene rida loob klassi 'Tutorial' objekti. See on esimene samm klasside ja objektidega töötamisel. Objektile antakse nimi 'tp'.
- Lõpuks kutsume failist demo.aspx faili tutorial.cs. See kuvab muutuja Name väärtuse.
Kui käivitate ülaltoodud programmi Visual Studios, saate järgmise väljundi.
Väljund:-
Väljundist näete teadet „Guru99 – ASP.NET”.
Step 6) Nüüd lisame oma testprojekti demorakendusse. Seda tehakse Visual Studio abil.
- Paremklõpsake valikut Lahendus – Demorakendus.
- Valige kontekstimenüüst suvand "Uus projekt".
Step 7) Etapp hõlmab ühikutesti projekti lisamist demorakendusele.
- Klõpsake vasakpoolsel paneelil üksuse tüübil "Test".
- Valige dialoogiboksi keskosas kuvatavast loendist üksus üksuse katseprojektina.
- Andke testprojektile nimi. Meie puhul on antud nimi "DemoTest".
- Lõpuks klõpsake nuppu "OK".
Lõpuks näete, et DemoTesti projekt lisatakse lahenduste uurijasse. Selle abil näete ka muid faile, nagu UnitTest1.cs, atribuudid jne on vaikimisi loodud.
Testprojekti käivitamine
Eelmises osas loodud testprojekti kasutatakse meie ASP.NET rakenduse testimiseks. Järgmistes sammudes vaatame, kuidas testprojekti käivitada.
- Esimene samm oleks viite lisamine ASP.NET projektile. See samm viiakse läbi selleks, et testprojektil oleks juurdepääs ASP.NET projektile.
- Seejärel kirjutame oma testikoodi.
- Lõpuks käivitame testi Visual Studio abil.
Step 1) Meie demorakenduse testimiseks peab esimene testprojekt viitama demorakendusele. Lisage viide Demo.aspx lahendusele.
- Paremklõpsake projekti Demo Test
- Valige menüüst suvand Lisa->Viide.
Step 2) Järgmine samm on lisada demorakendusele viide.
- Valige dialoogiboksi vasakpoolsest servast suvand Projektid
- Klõpsake valiku DemoApplication kõrval olevat märkeruutu
- Klõpsake nuppu 'OK'.
See võimaldab demotest projektil meie demorakendust testida.
Step 3) Nüüd on aeg lisada testkood meie testprojekti.
- Selle esimeseks topeltklõpsake lahendus Exploreris failil UnitTest1 (Visual Studio lisab testiprojekti loomisel automaatselt faili UnitTest1).
- See on fail, mida käivitatakse ASP.NET projekti testimiseks.
Näete allolevat koodi, mille Visual Studio lisab faili UnitTest1.cs. See on testprojekti käitamiseks vajalik põhikood.
Step 4) Järgmine samm on koodi lisamine, mida kasutatakse stringi „Guru99 – ASP.NET.
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using DemoApplication; namespace DemoTest { [TestClass] public class UnitTest1 { [TestMethod] public void TestMethod1() { Tutorial tp = new Tutorial(); Assert.AreEqual(tp.Name,"Guru99 - ASP.Net"); } } }
- Looge uus objekt nimega 'tp' tüüpi Tutorial
- Assert.AreEqual meetodit kasutatakse .NET-is väärtuse ja millegagi võrdse võrdsuse kontrollimiseks. Seega võrdleme meie puhul tp.Name väärtusi Guru99 – ASP.NET.
Step 5) Nüüd käivitame oma testprojekti. Selleks peame minema menüüvalikusse Test->Käivita->Kõik testid.
Väljund:-
Visual Studios ilmub test Exploreri aken. See näitab ülaltoodud tulemust ja näitab, et Visual Studios käivitati edukas test.
MSTesti atribuudid ja väited, mida te kasutate
. MicrosoftNimeruum .VisualStudio.TestTools.UnitTesting sisaldab väikest komplekti atribuute ja väiteid, mis hõlmavad enamikku ASP.NET-i ühikteste. Nende esmane õppimine muudab iga järgneva testi lugemise ja haldamise lihtsamaks.
- [Testiklass] – märgib klassi testide konteinerina. MSTest skannib selle atribuudiga klasse avastamise ajal.
- [Testimismeetod] – märgib avaliku, parameetriteta meetodi individuaalseks testiks. Meetod tagastab väärtuse void, Task või ValueTask.
- [Testi lähtestamine] / [Testi puhastamine] – käivitage enne ja pärast iga testimismeetodit. Kasutage neid jagatud seadistuse, näiteks näidisrepositooriumi või mälusisese konteksti loomiseks ja kõrvaldamiseks.
- [Klassi lähtestamine] / [Klassi puhastamine] – käivitatakse kogu klassi jaoks üks kord. Need on kasulikud, kui seadistamine on kulukas, näiteks testandmebaasi külvamine.
- [Andmerida] ja [AndmeteTestimismeetod] – varustavad parameetritega sisenditega, nii et üks testimismeetod hõlmab mitut juhtumit.
Iga testimismeetodi sees kontrollib Assert-klass tulemust. Levinud väljakutsete hulka kuuluvad Assert.AreEqual väärtuste võrdlemiseks, Assert.IsTrue ja Assert.IsFalse tõeväärtuste jaoks, Assert.IsNull ja Assert.IsNotNull viidete jaoks ning Assert.ThrowsException eeldatavate erandite jaoks. Struktureeri iga test mustri Arrange, Act, Assert abil, nii et seadistamine, kutsumine ja verifitseerimine jääksid visuaalselt eraldatuks. See paigutus muudab ebaõnnestunud testide silumise lihtsaks, sest ebaõnnestunud rida on peaaegu alati allosas olev Assert.
MSTesti, NUniti ja xUniti võrdlus ASP.NET-i jaoks
.NET ökosüsteemis domineerivad kolm testimisraamistikku. Kõik need töötavad Visual Studio sees ja integreeruvad dotnet test'iga, seega erinevus seisneb peamiselt stiilis, kogukonna toes ja vaikekäitumises.
- MSTest – saatja Microsoft ja see on eelinstallitud Visual Studio Unit Test Project malliga, mida selles õpetuses varem kasutati. See on kõige turvalisem vaikeväärtus, kui meeskond on ühiktestimises uus. Microsoft virn.
- NUnit – kolmest vanim, algselt portitud JUnitSee pakub rikkalikku piirangute mudelit, parameetritega teste TestCase'i ja TestCaseSource'i kaudu ning küpset tuge igas .NET-i versioonis.
- xUnit.net – kasutatakse ASP.NET Core'i ja Entity Framework Core'i meeskondade sisemiselt. See asendab SetUp meetodi konstruktori ja IDisposable'iga, soovitab iga käitumise kohta eraldi testiklassi ning kasutab [Fact] ja [Theory] asemel [TestMethod].
Kõik kolm raamistikku avastavad teste atribuutide kaudu, käivitavad käsu dotnet test ja loovad trx või xUnit XML-aruandeid, mis CI-torujuhtmed, näiteks Azure DevOps, GitHubi toimingud ja Jenkins saab otse tarbida. Esimese ASP.NET projekti puhul hoiab MSTesti juurde jäämine tööriistakett lihtsana. Meeskonnad, kes soovivad rikkalikumat parameetrite määramist või juba kasutavad ASP.NET Core'i, valivad sageli xUniti, et see oleks järjepidev raamistikuga, millega see loodi.
ASP.NET-i rakenduste ühiktestimise parimad tavad
Väikese harjumuste komplekti järgimine hoiab komplekti kiire, usaldusväärse ja kasulikuna kogu ASP.NET projekti eluea jooksul.
- Testi ühte käitumist iga meetodi kohta. Test, mis väidab mitut omavahel mitteseotud asja, ebaõnnestub mitmel põhjusel ja selle parandamine võtab kauem aega.
- Nimeta testid kavatsuse järgi. Selline muster nagu MethodUnderTest_Scenario_ExpectedResult muudab Test Exploreri väljundiks klassi loetava spetsifikatsiooni.
- Eraldage seade välistest süsteemidest. Mähi faili-, võrgu- ja andmebaasikõned liideste taha ning vaheta võltsingute või näidiste vastu, et test ei tabaks tegelikku sõltuvust.
- Hoidke testid kiired. Püüa kogu moodulite komplekt sekunditega läbida. Aeglased testid jäävad vahele ja vahelejäänud testid peidavad regressioone.
- Järgi paigutust „Arvelda, tegutse, esita“. Kolm lühikest tühjade ridadega plokki annavad märku kavatsusest ja muudavad ebaõnnestunud joonte märkamise lihtsaks.
- Käivita iga commitiga testid. Ühenda CI-torustikuga võrku, et katkine test blokeeriks ühendamise saatmise asemel.ping tootmisele.
- Track-koodi katvus, aga ära seda taga ajama hakka. Hõlmatud andmed toovad esile testimata teid, kuid suur arv üksi ei taga kvaliteeti. RevVaata, mida need puuduvad read tegelikult teevad.
Koos rakendatuna muudavad need tavad ülalpool loodud DemoTesti projekti komplekti algmaterjaliks, mis püüab kinni regressioone igal pushil, dokumenteerib käitumist tulevastele arendajatele ja annab kindlustunde ASP.NET-i rakenduse refaktoreerimisel.


















