Kawm chav tsev kuaj los ntawm kev siv JUnit?

JUnit and Unit Testing

Junit thiab Teb Chaws Asmeskas

Txheej txheem cej luam

Kev kuaj no tseem ceeb heev rau txoj kev loj hlob ntawm ib daim ntawv thov. Nws yog ib qho yuav tau nrhiav tau cov kab mob uas tej zaum yuav tam sim no nyob rau hauv tej qhov kev pab cuam. Kev kuaj no lom zem ntau qhov tseem ceeb uas xyuas kom meej tias ib software tsim tawm los yog tuam txhab yog ua tau delivering ib yam khoom zoo rau lawv tus neeg tau txais kev pab. Tam sim no, Muaj ntau ntau lub moj khaum siv mas mus kuaj chav tsev code. Nyob rau cov tshooj no, Peb yuav tshawb JUnit raws li ib tug kuaj framework thiab seb nws yuav tau siv nyob rau hauv ib daim ntawv thov Java.







Lub rau hli ntuj yog dab tsi?

Junit no ua tau ib tug heev haib kuaj framework meant rau cov ntaub ntawv Java. Junit txo nws hwj ib haum rau kev kuaj ua ntej dlua qhov chaws.

Qhov no, Thawj ua hauj lwm yog teem caij mus kuaj rau lub code. Tom qab ntawd, Tus coding muaj ib feem los siv rau hauv daim ntawv thov. Raws li txhua qhov kev pab cuam no kuaj thiab coded nyias, Daim ntawv thov tsim los sau heev npaum li cas. Tseem, debugging ib qhov kev pab cuam yog yooj yim npaum li txhua qhov chaws yog nyias ntsuam xyuas rau qhov muaj cov kab mob.

Lub Junit framework yog ib feem ntawm ib tsev neeg ntawm Java frameworks hu ua tus xunit. Tag nrho cov frameworks tam sim no nyob rau hauv lub xunit uas siv los mus kuaj hauv Java.



Tom qab

Raws li twb teev saum toj no, Junit neeg feem coob tshwm sim yuav muaj ib tug kuaj framework uas yog meant rau chav tsev kuaj ntawm chaws. Nws tseem yog ib tug framework uas tso cai rau kev kuaj-uas tau tsav, i.e. tus repetition ntawm kev loj hlob luv luv cycles, Qhov uas yuav tsum tau muab rau txoj kev kuaj no kom kuaj.

Junit yog hais tias yuav tsum tau ua ntej tsim nyob rau hauv 1997. Kent Beck, Erich Gamma, David Saff thiab Mike Clark yog daim credited nrog tus creators ntawm no kuaj framework. Lub framework yog ib tug ntoo khaub lig-platform framework uas yog sau nyob rau hauv Java thiab ntog hauv lub Eclipse License. Nws kuj tshwm sim kom yog ib qhov feem ntau feem ntau siv frameworks rau chav tsev kuaj.

Vim li cas Junit tseem ceeb heev?

Unit kuaj yog kab tias yog ib txoj kev tseem ceeb tshaj uas yuav tsum tau siv kom xa software zoo software. Nws yeej meant sim code hauv txoj kev kuaj ntawd tso cai rau txhua thiab txhua chav tsev nyias.

Ntawm zam tsoom fwv, Nws tseem zoo nkauj npaum li txhua lwm txoj kev kuaj framework, Ib tug uas pab nrhiav yoov rau hauv chaws snippets. Ib chav kuaj kuaj xyuas kom meej tias txhua tus tivthaiv software ua haujlwm optimally, uas ua rau nws tseem ceeb heev rau txoj kev loj hlob ntawm tej software. Txawm li cas los, nws tsis txaus siab qhov sib txuas ntawm ntau hom, yog cov ntaub ntawv uas muaj kev kuaj frameworks.








Cov yam ntxwv yog dab tsi?

Muaj ntau yam nta ntawm Junit tias peb yuav tsum saib.

  • Firstly, Nws yog ib qhov chaw qhib-qhov project, ces nws yuav siv tau yooj yim heev.
  • Nws siv Annotations uas pab nyob rau hauv txoj kev taw qhia txog txoj kev kuaj no yuav siv los mus kuaj.
  • Junit muaj kev ntsuam xyuas runners uas yog pab tau rau kev kuaj.
  • Nrog rau lub rau hli ntuj, ib tug kuj siv tau los ua assertions, kev ntsuam xyuas thiaj li yuav ntsuam xyuas tau qhov tseeb.
  • Junit yog yooj yim heev thiab tso cai rau sai heev thiab yooj yim kuaj.
  • Qhov kev kuaj ntawd khiav rau JUnit yuav tau teem tseg khiav automatically thiab ces nws cov tshev thiab muaj feedback rau qhov kev tshuaj ntsuam ib yam nkaus thiab.
  • Kev ntsuam xyuas no yuav tau txia mus kuaj cov suites uas muaj heev heev heev. Nws tseem yuav siv tau rau lwm txoj kev kuaj suites.
  • Ib bar ntsuab qhia tau hais tias qhov kev kuaj ntawd, uas puv liab rau ib tug tsis ua hauj lwm.

Pros thiab cons ntawm kev siv Junit

  • Cov txheej txheem?

Junit yog xav tias yog ib qhov zoo tshaj plaws kev kuaj frameworks rau Java; ntuj, nws muaj ntau pros. Junit ua software sim yooj ywm heev. Piv txwv, yog hais tias koj ua ib yam dab tsi uas hloov mus rau ib qho chaw ua hauj lwm hauv qhov kev pab cuam code, Koj yuav tau kuaj tau yog hais tias code yuav khiav tsis txawm khiav ntawm qhov chaws tag nrho. Tseem, Koj muaj peev xwm tsim tau koj cov ntaub ntawv kuaj no, thiaj li yuav tau yooj yim mus ntsuam xyuas cov kev pab zoo sib xws.

Lub tsev kuaj ntawd ua nyob rau lub rau hli ntuj yog lub teeb heev thiab yuav tau txais raws li qhov chaws kuj yooj yim heev. Lwm yam yog tias nws yog ib qho yooj yim heev rau siv, txawm pib.

  • Dab tsi yog tus cons?

Txhua yam kev kuaj framework muaj ib co teeb meem. Qhov teeb meem loj nyob rau lub rau hli ntuj yog cov Disease fact tias nws txoj kev kuaj no yog hu rau tej txoj kev thiab ces nws piv rau cov outputs nrog cov neeg uas yuav tsum tau tuaj. Thaum no tej zaum yuav ua hauj lwm zoo methods uas rov qab cov outputs xwb, Tsis yog txhua txoj kev ua hauj lwm hauv no. Kev ntsuam xyuas, yog hais tias txoj kev yuav tau nqa tawm cov zis, koj yuav tau ntes lawv, thiab qhov no yog ib daim ntawm txoj kev programming.

Lwm loj con ntawm Junit yog tias kev kuaj siv txoj kev uas hloov lub xeev ntawm lub hom phiaj yog mus kuaj, Qhov chaws yuav tsum tau adapted raws li lub xeev ntawd. Kuaj GUI code nyob rau hauv chav tsev yuav yeej nyuaj heev. Li ntawd, Nws yog ib lub tswv yim zoo los sau koj tus kheej rau validating cov khoom.


Plahaum thiab configuration

Raws li peb tau twb tham tias Junit yog ib tug kuaj framework rau Cov Ntaub Ntawv Java raws li cov ntaub ntawv, Ces JDK yuav tsum ntsia thawj. Cia peb mus xyuas qhov configuration kauj ruam ib los ntawm ib tug.

Kauj ruam 1: Download thiab ntsia Java Software kev loj hlob (ntxhuav). Tus JDK version yuav tsum tau 1.5 thiab saum toj no. Nws yuav tau downloaded ntawm qhov nram qab no.

JDK hauv load txuas: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Kauj ruam 2: Tom qab download thiab plahaum, Teeb JAVA_HOME raug variable taw rau version hauv koj lub zos hauv koj zos.

Piv txwv, JAVA_HOME = C:\Qhov Kev Pab Cuam Files/Java.jdk1.6.0_38

Kauj ruam 3: Download Junit thiab teeb lub chaw. Tseeb version yuav tau downloaded ntawm qhov txuas.

Junit download txuas: https://github.com/junit-team/junit4/wiki/Download-and-Install

Tom qab no, teeb JUNIT_HOME tej variable thiab taw tes rau lub Junit jar hauv koj lub zos.

Piv txwv JUNIT_HOME = C:\JUnit

Tam sim no lub chaw setup tag thiab peb yuav khiav tau ib daim ntawv thov Java raug kuaj.

Coj daim ntawv

Nyob rau hauv qhov qauv piv txwv, Peb yuav tsim ib chav tsev kawm ntawv chav kawm ntawv thiab ib txoj kev kuaj ntawd khiav hoob kawm. Kev kuaj khiav hoob kawm yuav ntsuam xyuas chav tsev kawm ntawv chav kawm ntawv thiab ua ib qho zis rau Boolean tus nqi (tseeb/cuav).

Qhia 1: Kuaj chav tsev kawm ntawv cov qauv

// Qhov no yog chav tsev kawm ntawv kuaj no yuav tau mus kuaj

ntshuam org.junit.Test;

Chaw nres nkoj static org.junit.AssertEquals.assertEquals;

Pej xeem hoob kawm Junittest {

@Test

pej xeem tsis txhob mus kuaj() {

Kauj ruam stringst= “Kev kuaj nrog Junit yog lawv xav tshuaj”;

sib npaug(“Kev kuaj nrog Junit yog lawv xav tshuaj”,qauv);

}

}

Qhia 2: Kev kuaj ntawd khiav hoob kawm mus xyuas cov zis

//Qhov no yog qhov kev kuaj ntawd khiav hoob kawm

import.junit.runner.JUnitCore;

import.junit.runner.Result;

import.junit.khiav.notification.failure;

Pej xeem hoob kawm Juntstrunner {

pej xeem tsis muaj dabtsis loj zoo li qub(Txoj hlua[] args) {

Trestresult = JUnitCore.runClasses(Junittest.class);

rau (Tsis ua hauj lwm tstaile : trestresult.getFailures()) {

//Luam cov zis

System.out.println(tstailure.toString());

}

//Luam cov zis
System.out.println(trestresult.wasSuccessful());

}

}

Kev ntsuam xyuas qhov tshwm sim, Thawj compile ob lub chav kawm ntawv raws li qhia hauv qab no

C:\JUNIT_TEST_WORKSPACE>javac Junittest..java

C:\JUNIT_TEST_WORKSPACE>javac Juntstrunner.java

Tom qab no, tiav qhov kev kuaj ntawd khiav hoob kawm raws li hauv qab no

C:\JUNIT_TEST_WORKSPACE>java Juntstrunner

Cov zis yuav muab tso tawm rau cov console li qhia hauv qab no.

tseeb

Xaus

Junit yog ib tug heev haib kuaj framework sawv daws khoom rau tsev neeg xunit tsev neeg uas kuaj frameworks tsim rau Java. Nws tseem ceeb heev rau cov developers siv Java uas xav kom lawv qhov kev pab cuam kom kiag li tsis txhob yoov. Junit yog ib tug kuaj zaub ntsuam xyuas framework, Li ntawd, nws pub rau txoj kev kuaj no txhua snippet ntawm chaws ua ntej txawm ua tau siv nws rau lub ntsiab ntawv. Qhov no tso cai rau tus tsim tawm yooj yim nrhiav thiab daws tej yam yooj yim, Txawm tias nws yog nkaum sib sib zog ntxaum hauv lub coding.







Nta, Ntau ntau thiab developers siv Junit, Tsis zoo xwb rau qhov yooj yim xwb, tiam sis kuj tsis tsim muaj hnyav ncaj rau lub kaw lus uas cov chaws no yog tau mus kuaj. Yog li, Nws yog ib lub tsev nyiam tuaj kuaj frameworks rau Java app txoj kev loj hlob.

============================================= ============================================== Yuav zoo TechAlpine phau ntawv rau Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Txaus siab rau qhov blog? Tshaj tawm lus thov :)

Follow by Email
LinkedIn
LinkedIn
Share