Testiranje Java koda za JUnit pomoć – Vodič. Test znanja Java - Osnove Online test java rabarbare

Testuvannya je daleko od toga da zavzhd buvaê zabavljamo se i tsíkavim. Tsey proces zvchichay dosit trivaly i sat ponavljanja monotonog rada. Pa, čini se da su nedavno programeri koristili standardnu ​​visnovku ili debugger za testiranje java klase.

U ovom članku opisat ću biblioteku JUnit 4, tako da može pomoći u automatizaciji procesa pisanja testova.

Kako bismo demonstrirali osnovne mogućnosti JUnit Frameworka, napišimo primitivnu Java klasu i upoznajmo se s njom. Ova klasa matime ima dvije metode - značaj faktorijala beskonačnog broja i zbroj dvaju brojeva. Osim toga, u kopiji klase bit će kopija viklikiv metoda.

Javna klasa MathFunc ( int pozivi; javni int getCalls() (povratni pozivi; ) javni dugi faktorijel (int broj) (pozivi++; if (broj 1) ( for (int i = 1; i

Sada napišimo jedinični test. Za koga stvaramo klasu iz velikog broja testnih metoda. Očito, klasa može biti osveta i standardne dodatne metode. Tako da trkački testovi mogu odmah odrediti tko, tko, metode testiranja i potrebno je označiti napomenu @Test.

Napomenama se mogu dati sljedeći parametri:

  • očekivano - navedite kakav će namig biti generiran metodom (div. stražnjica ispod);
  • timeout - nakon određenog sata u milisekundama, pričvrstite test na test i zarahuvat ga kao neuspješan.

Ako želite naznačiti da treba preskočiti prvi test, označite ga kao @Ignore bilješku. Ako želite, možete jednostavno izbrisati instrukciju @Test.

Pa, na primjer, potreban vam je kontekst pjesme za skriptu za testiranje kože, na primjer, zaostatak stvaranja instance klase. I nakon toga potrebno je provjeriti rezervirana sredstva. Što mislite da vam treba napomena @prije i @poslije. Nakon metode s oznakom @Prije slijedi pad testa kože, a nakon metode s oznakom @After slijedi pad testa kože.

Ako se inicijalizacija te razine resursa treba izvršiti samo jednom - tek nakon svih testova - tada zapišite nekoliko napomena @BeforeClass i @AfterClass.

I sama os i je testna klasa iz dekílkoma s testnim scenarijima:

Javna klasa MathFuncTest ( privatna matematika MathFunc; @ Prije javnog void init() ( math = new MathFunc(); ) @ Nakon javnog void tearDown() ( math = null; ) @ Testirajte javne void pozive () ( assertEquals(0, math .getCalls()), math.factorial(1); assertEquals(1, math.getCalls()); math.factorial(1); (assertTrue(math.factorial(0) == 1); assertTrue(math.factorial (1) == 1); assertTrue(math.factorial(5) == 120); ) @Test(očekivano = IllegalArgumentException.class) public void factorialNegative() (math.factorial(-1); ) @Ignoriraj @Test public void todo() ( assertTrue(math.plus(1, 1) == 3); ) )

Metoda poziva testira ispravnost zvona. Faktorijalna metoda provjerava ispravnost faktorijalnog izračuna za određene standardne vrijednosti. Metoda factorialNegative nadjačava to za negativne vrijednosti faktorijala, izbacit će izuzetak IllegalArgumentException. Todo metoda će biti zanemarena. Pokušajte očistiti napomenu @Ignore ako eksperimentirate s kodom.

Metoda assertTrue provjerava je li rezultat provjeren. Deyakí ínshí metode, yakí mogu postati u korist:

  • assertEquals - generiraju se provjera valjanosti rezultata i oduzimanje rezultata;
  • assertNull - rezultat virase je null;
  • assertNotNull - rezultat virazu vídminny víd null;
  • AssertSame - provjera valjanosti i odbacivanje objekta od strane jednog te istog objekta.
  • fail - metoda za generiranje krivnje AssertionError - dodajemo gdje nije kriv zaglavlje programa.

U našem trenutnom svijetu IDE zna kako jednostavno pokrenuti testove u projektu. Jao, ako ih želite pokrenuti ručno za pomoć s programskim kodom. Za koga možete ubrzati Runner "om. Koristite tekst - junit.textui.TestRunner, grafičke verzije - junit.swingui.TestRunner, junit.awtui.TestRunner.

Ali modernija metoda je ista kao i klasa JUnitCore. Dodajte sljedeću glavnu metodu klasi MathFuncTest:

Javni statički void main(String args) izbacuje iznimku ( JUnitCore runner = new JUnitCore(); Rezultat rezultata = runner.run(MathFuncTest.class); System.out.println("pokreni testove: " + result.getRunCount()); System.out.println("neuspjeli testovi: " + result.getFailureCount()); System.out.println("ignorirani testovi: " + result.getIgnoreCount()); System.out.println("uspjeh: " + rezultat .bilo uspjesno()); )

I rezultat vikonannyja:

Pokreni testove: 3 neuspješna testa: 0 ignoriranih testova: 1 uspjeh: istina

Više ranim verzijama JUnit za pisanje testne klase, morate dekomprimirati junit.framework.TestCase. Zatim je potrebno odrediti konstruktor, koji prihvaća kao String parametar - nazvat ću metodu - i proslijediti ga razredu oca. Koža testne metode je kriva za početak od testnog prefiksa. Za inicijalizaciju i skaliranje resursa korištene su metode setUp i TearDown. Ukratko, wow. E, sad je sve jednostavno, zar ne.

Os i tijekom cijele godine. Sranje, JUnit Framework je bogat onim što će vam pomoći. Komentari i prehrana tiču ​​se statistike.

JUnit- Knjižnica za jedinično testiranje Java programa. Stvorili su ga Kent Beck i Eric Gamma, JUnit se temelji na istim xUnit okvirima za različite programske jezike koji svoje korijene vuku iz SUnit for Smalltalk Kenta Becka. JUnit stvara ekosustav ekstenzija - JMock, EasyMock, DbUnit, HttpUnit, itd.

knjižnica JUnit bula je prenesena drugim movovima, uključujući PHP (PHPUnit), C# (NUnit), Python (PyUnit), Fortran (fUnit), Delphi (DUnit), Free Pascal (FPCUnit), Perl (Test::Unit), C++ ( CPPUnit) , Flex (FlexUnit), JavaScript (JSUnit).

JUnit- Ovo je Java okvir za testiranje, dakle testiranje puno koda, na primjer, metoda ili klasa. Dosvid, odbivši sat rada od JUnit-a, važan u razvoju koncepata testiranja softver.

test kundaka JUnit

Uvoz org.junit.Test; import junit.framework.Assert; javna klasa MathTest ( @Test public void testEquals() ( Assert.assertEquals(4, 2 + 2); Assert.assertTrue(4 == 2 + 2); ) @Test public void testNotEquals() ( Assert.assertFalse(5 = = 2 + 2;)))

Potreban je JUnit wiki

JUnit vam omogućuje promjenu koda u bilo kojem trenutku. Ako program prestane biti još jednostavniji i uključuje anonimne klase i metode, tada će za ponovnu provjeru možda trebati značajan sat. Očito se cijeli proces može brže automatizirati. Vikoristannya JUnit omogućuje prepisivanje koda programa bez značajnih zusil i ne oduzima puno vremena.

jedinični test klase i funkcije te vlastitu dokumentaciju prije nego što budu prepoznati u rezultatima njihova pregleda. I ne samo dokumentaciju, već dokumentaciju, tako da možete automatski provjeriti usklađenost koda s predstavljenim funkcijama. Tse zruchno i često test rozroblyayat kao vrijeme, tako í prije provedbe klase. Razvoj kroz testiranje vrlo je popularna tehnologija za stvaranje ozbiljne softverske sigurnosti.

Pogledajte test na tom mjestu JUnit test u klasifikatoru

Testiranje softvera može se podijeliti u dvije vrste:

  • testuvannya crni ekran;
  • testiranje bijelih ekrana.

Pod sat vremena testiranja programa poput crnog ekrana, unutarnja struktura programa nije prihvaćena za poštivanje. Sve što može biti smisleno, funkcionalno, poput programa, može biti sigurno. Prilikom testiranja programa poput kutije, interna struktura se poštuje, tj. klasa metoda. Krym tsgogo, testuvannya se može podijeliti na chotiri jednake:

  • test jedinica - ispitivanje okremih broja koda;
  • integracijsko testiranje - ispitivanje međusobnog modaliteta i zajedničkih robotskih komponenti;
  • testiranje sustava - testiranje cijelog sustava u cjelini;
  • primarno ispitivanje - sub-bag testiranje gotovog sustava na održivost vimogama.

Jedinica za testiranje za imenovanje i testiranje bijelih ekrana.

Postoje dvije opcije za testiranje jedinica - JUnit 3 i JUnit 4. Možemo pogledati inačice koje su uvredljive, budući da stari projekti imaju treću verziju, koja podržava Javu 1.4.

JUnit 3

Da biste stvorili test, smanjite klasu testa TestCase, redefinirajte metode setUp i tearDown prema potrebi, i što je najvažnije, proširite metode testiranja, koje se mogu imenovati pomoću kratice "test". Kada se test pokrene, u hodu se kreira instanca testne klase (za kožni test u klasi, instanca klase je), zatim se pobjeđuje metoda setUp, pokreće se sam test, a zatim TearDown metoda je pretučena do kraja. Kao da postoji bilo kakva metoda okrivljavanja, test se smatra takvim da ne uspijeva.

Napomena: Metode ispitivanja moraju biti javno nevažeće, mogu biti statične.

Testovi se sastoje od vikonnannya sing koda i ponovne provjere. Perevírki uglavnom vykonuyutsya za pomoć klase tvrditiželeći promijeniti ključnu riječ assert.

Kao primjer, možemo pogledati uslužni program za robote s redovima, koji uključuje metode za ponovnu provjeru praznog retka i davanje niza bajtova u retku od 16 redaka:

Javna klasa JUnit3StringUtilsTest proširuje TestCase (privatna konačna mapa toHexStringData = New HashMap(); zaštićena void setUp() izbacuje iznimku (toHexStringData. put("", Novi bajt); 13, 17, 45, 127)); čisto(); ) public void testToHexString() ( za (Iterator iterator = toHexStringData.keySet().iterator(); iterator.hasNext();) (očekivani konačni niz = (String)iterator.next(); završni bajt testData = (bajt) toHexStringData.get(očekivani); konačni string stvarni = StringUtils.toHexString(testData); assertEquals(očekivani, stvarni); ) ) //... )

Dodatne mogućnosti, TestSuite

JUnit 3. svibnja dodatne mogućnosti. Na primjer, možete grupirati viprobuvannya. Za koga je potrebno osvojiti čas TestSuite:

Javna klasa JUnit3StringUtilsTestSuite proširuje TestSuite ( public JUnit3StringUtilsTestSuite() ( addTestSuite(StringUtilsJUnit3Test.class); addTestSuite(OtherTest1.class); addTestSuite(OtherTest2.class); ) ) )

Test možete ponoviti nekoliko puta. Za koga osvojiti RepeatedTest:

Javna klasa JUnit3StringUtilsRepeatedTest proširuje RepeatedTest (javni JUnit3StringUtilsRepeatedTest() ( super(new JUnit3StringUtilsTest(), 100); ) )

Naslijeđujući testnu klasu kao što je ExceptionTestCase, možete refaktorirati kod na wikidexclusion:

Javna klasa JUnit3StringUtilsExceptionTest proširuje ExceptionTestCase (javni JUnit3StringUtilsExceptionTest(konačni naziv niza) ( super(name, NullPointerException.class); ) public void testToHexString() ( StringUtils.toHexString(null); ) )

Kao što vidite iz aplikacija, sve je jednostavno za napraviti i nema se što napisati - barem kod za JUnit testiranje.

JUnit 4

JUnit 4 dodao je nove značajke za Javu 5.0; Testeri mogu biti otvoreni za dodatne napomene. U svakom trenutku postoji velika zbrka u odnosu na prethodnu verziju okvira. U međuvremenu, sve što je pogledano i primijenjeno uvježbavat će se u JUnit 4 Crime RepeatedTest, koji je nov u novoj verziji.

Koje su se promjene pojavile u JUnit 4? Pogledajmo samu zadnjicu, a onda opet s novim mogućnostima:

Javna klasa JUnit4StringUtilsTest proširuje Assert (privatna konačna mapa toHexStringData = nova HashMap (); @Prije javnog statičkog void setUpToHexStringData() ( toHexStringData.put(", novi bajt); toHexStringData.put("01020d112d7f", novi bajt(1,2,13,17,45,127)); toHexStringData.put("10f" byte(0,-1,-14,17,-128)); //... ) @Nakon javnog statičnog void tearDownToHexStringData() ( toHexStringData.clear(); ) @Test public void testToHexString() ( za (karta .Ulaz unos: toHexStringData.entrySet()) (završni bajt testData = entry.getValue(); konačni string očekivan = entry.getKey(); konačni string stvarni = StringUtils.toHexString(testData); assertEquals(očekivani, stvarni); ) ) )

Što se promijenilo u JUnit 4?

  • Za oprost, rad se može smanjiti na satu tvrditiželim to neobov'yazkovo.
  • Sažetak @Prije znači metode koje će biti pozvane prije pobjednika testova. Metodi napraviti buti javna praznina. Ovdje ćete čuti unaprijed postavljene postavke za test, u isto vrijeme i generiranje testnih podataka (metod setUpToHexStringData).
  • Možete osvojiti instrukciju @PrijeClass kako odrediti metode, kako će se pozvati prije kreiranja kopije testne klase; metode krivnje javna statična praznina. S obzirom na upute (metoda) maê sens vikoristovuvaty za testiranje u isto vrijeme, ako se testna klasa može testirati, vikoristovuyut različite unaprijed postavljene postavke, ili ako se test zamjenski test vrši sam, a zatim brisanje svaki sat za kožni test.
  • Sažetak @Nakon odrediti metode, viklikaní nakon vikonannya testív. Metodi napraviti buti javna praznina. Ovdje je rad resursa dopušten nakon testa; za naš vipad - pročišćavanje testnih podataka (metod tearDownToHexStringData).
  • Sažetak @Nakon nastave pov'azana za zmístom z @PrijeClass ale vikonuê metode nakon testiranja klase. Yak i u vipadku z @PrijeClass, metode krivnje javna statična praznina.
  • Sažetak @Test odrediti metode ispitivanja. Kao i prije, tsí metodi za pranje butija javna praznina. Ovdje su raširene same revizije. Osim toga, u ovoj instrukciji možete osvojiti dva parametra, očekivana - postaviti broj vins i timeout - postaviti sat nakon kojeg se test smatra takvim da ne uspije.

Primijenite prilagođenu bilješku s parametrima, JUnit test:

@Test(expected = NullPointerException.class) public void testToHexStringWrong() ( StringUtils.toHexString(null); ) @Test(timeout = 1000) public void infinity() ( while (true); )

JUnit zanemari

Kao jedan od testova, iz nekog ozbiljnog razloga, potrebno ga je uključiti, na primjer, test se postupno završava uz oprost. Ispravak testa može se staviti na laganu buduću bilješku @Zanemariti. Ako ovu instrukciju smjestite u razred, tada će biti uključeni svi testovi u tom razredu.

@Zanemari @Test(timeout = 1000) public void infinity() (dok (true); )

Pravila za tetovaže, JUnit pravilo

JUnit omogućuje vam da pobijedite pjesme s popisom pravila do sljedećeg puta kada završite test, što proširuje funkcionalnost. Na primjer, postoje pravila za postavljanje timeouta za test (Timeout), za postavljanje točaka krivnje (ExpectedException), za rad s vremenskim datotekama (TemporaryFolder) i int.

Za oglušivanje o pravila potrebno je stvarati javnost ne statički polje na vrstu sličnog tipa MethodRule i napomenu yogo za ključnu riječ pomoći Pravilo.

Javna klasa JUnitOtherTest ( @Rule javna konačna mapa TemporaryFolder = New TemporaryFolder(); @Rule javna konačna Timeout timeout = New Timeout(1000); @Rule public final ExpectedException thrown = ExpectedException.none(); @Ignore @ ) ( while (true ); ) @Test public void testFileWriting() izbacuje IOException (završni zapisnik datoteke = folder.newFile("debug.log"); konačni FileWriter logWriter = novi FileWriter(log); logWriter.append("Zdravo, "); logWriter. append("Svijet!!!"); logWriter.flush(); logWriter.close(); ) @Test public void testExpectedException() izbacuje IOException ( thrown.expect(NullPointerException.class); StringUtils.toHexString (null); ) )

Testni paket, JUnit Suite, SuiteClasses

Izvođenje testa može se poboljšati za dodatne napomene @RunWith. Ispitne klase, koje se mogu koristiti s vašim vlastitim metodama ispitivanja, mogu se uzeti iz testnih kompleta (Suite). Na primjer, stvorene su dvije klase testnih objekata: TestFilter, TestConnect. Ove dvije testne klase mogu se kombinirati u jednu testnu klasu TestWidgets.java:

Paket com.objects; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses (( TestFilter.class, TestConnect.class )) javna klasa TestWidgets ()

Za poboljšanje rezultata testa uključena je napomena @SuiteClasses, testovi su uključeni u razred.

Apstraktne kategorije

Sažetak kategorije omogućuje kombiniranje testova u kategoriji (grupi). Za koga test ima kategoriju @Kategorija, nakon čega se prilagođavaju kategorije testova koji se pokreću u Suite. Možete izgledati ovako:

Javna klasa JUnitStringUtilsCategoriesTest proširuje Assert ( //... @Category (Unit.class) @Test public void testIsEmpty() ( //... ) //... ) @RunWith(Categories.class) @Categories.IncludeCategory ( Unit.class) @Suite.SuiteClasses (( JUnitOtherTest.class, JUnitStringUtilsCategoriesTest.class )) javna klasa JUnitTestSuite()

Sažetak, JUnit parametriran

Sažetak Parametrizirano omogućuje kviziranje parametriziranih testova. Za koje u testnoj klasi postoji statička metoda koja rotira popis podataka, koji će se koristiti kao argumenti konstruktoru klase.

@RunWith(Parameterized.class) javna klasa JUnitStringUtilsParameterizedTest proširuje Assert (privatna konačna CharSequence testData; privatni konačni logički očekivani; javni JUnitStringUtilsParameterizedTest(final CharSequence testData, konačni boolean očekivan) ( this.testDataIs test public boolean stvarni StringUtils.isEmpty(testData); assertEquals(očekivano, stvarno); ) @Parameterized.Parameters javni statički popis isEmptyData() ( vrati Arrays.asList (novi objekt ( ( null, true ), ( "", true ), ( " ", false ), ( "neki niz", false ), )) ))

Parameterizacija metode: Theories.class, DataPoints, DataPoint, Theory

Sažetak teorije parametrizira metodu ispitivanja, a ne konstruktor. Dani je imenovan za pomoć @DataPointsі @DataPoint, metoda ispitivanja - za pomoć @Teorija. Test, koji je svojevrsna funkcionalnost, mogao bi izgledati otprilike ovako:

@RunWith(Theories.class) javna klasa JUnitStringUtilsTheoryTest proširuje Assert ( @DataPoints javni statički objekt isEmptyData = novi objekt ( ( "", true ), ( " ", false ), ( "neki niz", false ), ); @DataPoint javni statički objekt nullData = novi objekt ( null, true ); @Theory public void testEmpty (konačni objekt... testData)

Redoslijed testiranja

Ako je potrebno prvo rangirati test, onda ga možete ubrzati s napomenom @FixMethodOrder(MethodSorters.NAME_ASCENDING) koju je uveo JUnit 4.11. Na primjer:

@FixMethodOrder(MethodSorters.NAME_ASCENDING) javna klasa MyTest ( @Test public void test01()(...) @Test public void test02()(...) ... @Test public void test09()(...) )

U drugom zavoju možete pobijediti sljedeća 2 koraka.

Void test01(); void test02(); ... void test09(); @Test public void testOrder1() (test1(); test3(); ) @Test(očekivano = Exception.class) public void testOrder2() (test2(); test3(); test1(); ) @Test(očekivano = NullPointerException.class) public void testOrder3() ( test3(); test1(); test2(); )

@ Testirajte public void testAllOrders() ( za (Uzorak objekta: permute(1, 2, 3)) ( za (Indeks objekta: uzorak) (prebacite (((Integer) index).intValue()) ( slučaj 1: test1( ); prekid; slučaj 2: test2(); prekid; slučaj 3: test3(); prekid; ) ) ) )

Popis glavnih napomena

SažetakOpis
@Test
public void testMethod()
metoda je provjerljiva
@Test(timeout=100)
public void testMethod()
ako je vrijeme isteklo, parametar timeouta bit će poništen, test neće uskoro biti dovršen
@Test(očekivano = MyException.class)
public void testMethod()
metoda je kriva za viking i okrivljavanje do klase MyException, inače će test biti dovršen nedaleko
@Zanemariti
public void testMethod()
zanemariti metodu ispitivanja
@PrijeClass
metoda koja se poziva jednom za klasu prije pozivanja testnih metoda; ovdje je moguće postaviti inicijalizaciju, tako da je potrebno pobijediti samo jednom, npr. za čitanje podataka, kako bi pobijedili u testnim metodama ili kreirali bazu podataka s bazom podataka
@Nakon nastave
javni statički void testMethod()
metoda koja se poziva jednom za klasu nakon pozivanja testnih metoda; ovdje je moguće proširiti deinicijalizaciju, tako da je potrebno izvršiti samo jednom, na primjer, zatvoriti podatke s bazom podataka, ili pak izbrisati podatke, jer više nisu potrebni
@Prije
javna statička praznina prijeMetoda()
metoda, koja se poziva prije metode testa kože u testnoj klasi; ovdje možete podesiti potrebnu inicijalizaciju, na primjer, postaviti parametre
@Nakon
javna statička praznina afterMethod()
metoda, koja se zove po metodi testa kože u testnoj klasi; ovdje možete izvršiti potrebnu deinicijalizaciju, na primjer, ukloniti podatke, jer vam više ne treba

Popis vrsta tvrdnji

Vrsta pregledaOpis
iznevjeriti()
neuspjeh (poruka niza)
perevannya test s oprostom, tobto. test neće uspjeti
assertTrue (booleov uvjet)
assertTrue(java.lang.String poruka, boolean uvjet)
ponovna provjera za smirenost umova uvjet vrijednost true
assertFalse (booleov uvjet)
assertFalse(poruka niza, logički uvjet)
ponovno provjerite podobnost vrijednost uvjeta uma false
assertEquals(<тип>očekivano,<тип>stvarni)
assertEquals(poruka niza,<тип>očekivano,<тип>stvarni)
ponovno provjeriti podobnost;<тип>- ce Object, int, double í itd.
assertArrayEquals(očekivani bajt, stvarni bajt)
assertArrayEquals(poruka niza,<тип>očekivanja,<тип>stvarnosti)
ponovna provjera nizova za jednakost; slično assertEquals;<тип>- ce Object, int, double í itd.
assertNotNull (objekt objekta)
assertNotNull(poruka niza, objekt objekt)
provjerite da objekt nije null
assertNull (objekt objekta)
assertNull (poruka niza, objekt objekt)
provjerite je li Objekat null
assertSame(očekivani objekt, stvarni objekt)
assertSame(poruka niza, očekivani objekt, stvarni objekt)
ponovna provjera jednakosti dvaju objekata očekivanog i stvarnog, tobto. jedan te isti predmet

JUnit test kundaka

Da bismo demonstrirali osnovne mogućnosti JUnit-a, koristimo primitivnu java klasu FuncMath koja ima dvije metode – vrijednost faktorijala beskonačnog broja i zbroj dvaju brojeva. Osim toga, u kopiji klase bit će kopija viklikiv metoda.

Javna klasa FuncMath ( int pozivi; javni int getCalls() (povratni pozivi; ) javni dugi faktorijel (int broj) (pozivi++; if (broj< 0) throw new IllegalArgumentException(); long result = 1; if (number >1) ( za (int i = 1; i< = number; i++) result = result * i; } return result; } public long plus(int num1, int num2) { calls++; return num1 + num2; } }

Osim scenarija testa kože, potreban je kontekst, na primjer, iza stvaranja instanci klasa. I nakon toga potrebno je provjeriti rezervirana sredstva. Imam antonaciju za @prije i @poslije. Nakon metode s oznakom @Prije slijedi pad testa kože, a nakon metode s oznakom @After slijedi pad testa kože. Kao i inicijalizaciju te razine resursa, potrebno ju je razviti samo jednom - tek nakon svih testova - zatim osvojiti par napomena @BeforeClass i @AfterClass.

Testna klasa sa kilcom scenarijima izgleda ovako:

Uvoz org.junit.Test; import org.junit.After; import org.junit.Before; import org.junit.Assert; import org.junit.AfterClass; import org.junit.BeforeClass; javna klasa JUnit_funcMath proširuje Assert (privatna matematika FuncMath; @Prije javnog void init() (math = new FuncMath(); ) @Nakon javnog void tearDown() (math = null; ) @Test javne void pozive() ( assertEquals(" math.getCalls() != 0", 0, dao.getConnection()); math.factorial(1); assertEquals(1, math.getCalls()); math.factorial(1); assertEquals(2, math. getCalls()); ) @Test public void factorial() (assertTrue(math.factorial(0) == 1); assertTrue(math.factorial(1) == 1); assertTrue(math.factorial(5) == 120);) @Test(expected = IllegalArgumentException.class) public void factorialNegative() ( math.factorial(-1); ) @Ignore @Test public void todo() ( assertTrue(math.plus(1, 1) == 3);

Metoda poziva testira ispravnost zvona. Faktorijalna metoda provjerava ispravnost faktorijalnog izračuna za određene standardne vrijednosti. Metoda factorialNegative nadjačava to za negativne vrijednosti faktorijala, izbacit će izuzetak IllegalArgumentException. Todo metoda će biti zanemarena.

Na primjer, naznačite da je članak predstavljen u općem kontekstu JUnit-a. Međutim, kao što možete vidjeti iz smjernica aplikacija, okvir je jednostavan za korištenje u pobjedama, nema puno dodatnih mogućnosti, ali moguće je proširiti se izvan pravila i pokretača.

Znam da je razvoj PZ-a više, manje posla. I sama radim s obrtnikom, koji se svakim danom trudi postati bolji. Svakome je najlakše poznavati papalinu dobri alati taj savjet o sljedećem obroku:

  • Ako sam kriv za pobjednički X alat?
  • Kako sam kriv za pobjednički X alat?

Automatizirano testiranje važan je dio razvoja softvera, ali u blogovima programera postoje tri posta o alatima koji se testiraju. Zašto, dopustite mi da pogledate moj "zaslon s alatima". Reći ću vam o 12 knjižnica i okvira, kao da sam ja hack za pisanje testova jedinica i integracije, a također ću vam dati pomoć sa strane, tako da vam mogu pomoći da shvatite kako ih hakirati.

Pogledajmo moj alatni okvir

Prije toga, budući da možete podesiti opis dat alatima, odgovorni ste za podešavanje preklapanja, kao da automatski pokrećete integraciju i jedinične testove. Imam 2 bilješke na ovu temu:

  • Maven integracijsko testiranje opisuje kako možemo prilagoditi Maven savijanje integracijom i jediničnim testovima u različitim direktorijima.
  • Gradle Start: Integracijsko testiranje s dodatkom TestSets opisuje one za Gradle.

Sada ste spremni da se divite mojim alatima. Podijelio sam ih u kategorije, kako bi vam se lakše snalazili.

Također, os od 12 alata, poput vicorousa s integracijom i jediničnim testiranjem.

Izvođenje testova

AssertJ pruža fleksibilan API za pisanje čvrste izjave o pomilovanju, poboljšavajući čitljivost testnog koda, dopuštajući vam da prepišete testove prema pojedinostima koje su napisane, prema potrebi za filmove orijentirane na domenu.

Dodatkovo:

  • Hak Hamcrest za potrebe testiranja, kako hakirati Hamcrest za pisanje testova, a također i kako proširiti njegove mogućnosti dodatnim osnovnim modulima.
  • Tvrdnju pretvaramo u predmetno orijentirani jezik razvoja, kao da stvaramo tvrdnju koristuvacha u AssertJ.
  • Pišemo čisto: zamjena tvrdoće s predmetno orijentiranim rudnikom. Rozpovida, zašto smo krivi što smo standardnu ​​JUnit tvrdoću zamijenili riječima, kao pobjednički jezik, predmetno orijentirani jezik.

Test koda za pristup podacima

Kod baze podataka dizajniran je za pisanje integracijskih testova koji se izvode na lokalnom računalu trgovca.

Proširenje za JUnit, tako da se možete prijaviti za inicijalizaciju baze podataka u administraciji prije izvođenja testa integracije skinova i popunjavanja baze potrebnim podacima. DbUnit ima svojih nedostataka, ali je također osnovni alat koji vam omogućuje dijeljenje testnih podataka i testnog koda.

Dodatkovo:

  • Opisuje ključne komponente DbUnit-a, poznavanje svih potrebnih testova pisanja s dodatnim DbUnit-om.
  • nada 5 pravila pisanja najbolji testovi kod za pristup podacima.

Java - objektno orijentirano, jako tipizirano programiranje jezika, koje je distribuirao Sun Microsystems 1991. godine. Jezik se izvorno zvao Oak i koristio se za programiranje elektronike u pokretu, ali je kasnije preimenovan u Java. Službeno izdanje Jave 1995. pokazalo se još uspješnijim i nedugo nakon novog jezika, Java je zauzela snažnu poziciju kao alat za razvoj poslužiteljskih dodataka.

U naše vrijeme Java pobjeđuje u svim područjima razvoja softvera – poslužiteljski programi, desktop programi, alati, web dodaci – sve se razvija uz pomoć Jave i kontroverznih tehnologija.

Ciljana publika za Java test

Testirajte Javu kako biste testirali snagu, dokazujući da poznajete više trgovaca s minimalnim znanjem o Java programiranju. Test će biti bogatiji, za onaj broj ljudi koji ne mogu smisliti puno posla s Javom i žele imati minimalnu obavijest o Osnovni koncepti tsíêí̈ popularno programiranje filmova. Također, ovaj test može biti poznat studentima, poput učenja Jave, za konsolidaciju znanja, oduzimanje od VNZ-a ili kao rezultat samostalnog rada.

Proslijedi Java testiranje

Prije polaganja testa već poznajete osnovne koncepte Jave, kao što su "promjena", "petlja", "metoda" i poznajete sintaksu glavnih modernih konstrukcija. Ako ne, preporučamo da naučite osnove Jave čitajući uvodni tečaj.

Struktura Java testa

Test "Java - Osnove" pokriven je sljedećim temama:

Izvještaj o temama testiranja hrane možete pročitati u nastavku:

  • Objekti te klase: hrana teme je pokrivena na način da se razumije kao klasa, instanca klase (objekta), konstruktori, metode polja za klasu.
  • Sintaksa: moć ove podjele je pregledavanje znanja ključnih riječi poteza, operatora, osnovnih tipova (primitivi, String), konstrukcija za kontrolu (if-else, while, for), kao i razumijevanje obrade situacija krivaca (iznimka).
  • Dodatno: tsey razdíl osveta za razumijevanje osnova, pojmova i kratica, konvencija imenovanja klasa, promjena i metoda. Također, za svaku distribuciju gledamo ponudu različitih datoteka (.java, .class, .jar) i paketa, životni ciklus objekata, kolekciju pohrane.

Polaganje online Java testa pomaže vam da pregledate i konsolidirate svoje znanje o osnovama Jave, kao i da vas navede da polažete više sklopivih testova iz grane Java testova.

Nadajmo se Danski test psovat ćeš i plakati.

Daljnji razvoj Java testa

Java test se stalno ažurira novim namirnicama.

Najbliži planovi Quizful tima su izrada testova stručne razine u Javi. Moguće je da će nastati Java Puzzlers test, ali će, nažalost, prikladnije podsjećati na hranu.

Ako imate malo poštovanja prema ishrani tijesta, pišite nam općenito. Hej budi sretan.

U potrazi za testnim zadacima za java programere, poslao sam ih na stranicu cicavia ( Koristuwacham Avast ne idi, to je trojanac za skriptiranje, inače možeš) - http://www.betterprogrammer.com. Onda osvojite kvalifikacije Java programera na najjednostavniji način automatski: odmah napišite neke funkcije (metode) presavijanja tog poteza i kopirajte kod u TextArea. Stranici smo dali motor da radi sa zadacima (ne inače kao jedinični test), izračunava prvi kvalifikacijski indeks prema kriteriju "slatkoća-kvaliteta" i izgleda ovako:

Dali pochinayutsya hranu. I sam sam odjednom u životu programirao u Javi (i na to sam samo preskočio zadatak), tako da se 82% testa smatra jednakim ne-java programer. Koliko kredita upisati Java Junior, Java programer i posebno Java Senior?! Koji se rezultat boduje pravo Java programer - 90, 95, 99? I sad, kao buti, kao "programer" tipka manje od 82, ali ne pretvara se da je robot manje od ?!

Mobilni prilozi