CodeGym/Kurso sa Java/Modyul 3/Mga unang pagsubok sa JUnit

Mga unang pagsubok sa JUnit

Available

Pagkonekta sa JUnit framework

Para sa pagsubok ng Java code, mayroon kaming isang mahusay na framework na tinatawag na JUnit . Ito ay mahusay na gumagana, ito ay patuloy na ina-update, ito ay napakapopular at siyempre ang Intellij IDEA ay napakahigpit na isinama dito.

Ngayon ang lahat ay gumagamit ng ikalimang bersyon ng balangkas na ito - JUnit 5 , bagaman sa maraming proyekto ay mahahanap mo pa rin ang ikaapat na bersyon nito. Hindi gaanong naiiba ang mga ito, ngunit titingnan pa rin natin ang pinakabago. Sa tingin ko sa oras na magsimula kang aktibong magsulat ng mga pagsusulit, maaaprubahan mo ang aking pinili.

Kaya, paano magdagdag ng JUnit sa proyekto? Pagkatapos matutunan ang Maven magiging madali: idagdag lang ang code na ito sa iyong pom.xml:

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
	<version>5.8.1</version>
	<scope>test</scope>
</dependency>

Siyanga pala, kung gusto mong patakbuhin ni Maven ang iyong mga pagsubok sa yugto ng pagbuo ( yugto ng pagsubok ), kailangan mong magdagdag ng isa pang fragment sa pom.xml:

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
	<version>2.19.1</version>
	<dependencies>
    	<dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-surefire-provider</artifactId>
            <version>1.3.2</version>
    	</dependency>
	</dependencies>
</plugin>

@Test annotation

Sabihin nating mayroon kang klase na gusto mong subukan. Ano ang pinakamahusay na paraan upang gawin ito? Magsimula tayo sa ilang halimbawa, dahil mahirap subukan ang isang abstract na klase :)

Ipagpalagay na mayroon kaming klase ng Calculator na maaaring magsagawa ng 4 na pangunahing operasyon: karagdagan, pagbabawas, pagpaparami at paghahati. Isulat natin ito:

class Calculator {
    	public int add(int a, int b) {
        	return a+b;
    	}

    	public int sub(int a, int b) {
        	return a-b;
    	}

    	public int mul (int a, int b) {
        	return a*b;
    	}

    	public int div(int a, int b) {
        	return a/b;
    	}
}

Gusto naming subukan ang mga pamamaraan ng klase na ito. Hindi mo alam, sa hinaharap ay may binago sila at ang lahat ay hihinto sa paggana. Paano tayo makakasulat ng mga pagsubok para dito?

Kailangan nating lumikha ng isa pang klase. Upang gawin ito, karaniwang ginagamit nila ang parehong pangalan at idinagdag ang Test suffix . Para sa bawat paraan, dapat kang magdagdag ng kahit isang paraan ng pagsubok. Halimbawa:

class CalculatorTest {
   	@Test
    	public void add() {
    	}
   	@Test
    	public void sub() {
        }
   	@Test
    	public void mul() {
    	}
   	@Test
    	public void div() {
    	}
}

Dati ay kinakailangan na ang pangalan ng pamamaraan ay magsimula sa salitang pagsubok , ngunit hindi na ito kinakailangan.

Mga halimbawa ng pagsubok sa JUnit

Sumulat tayo ng ilang halimbawa kung saan susuriin natin ang mga pamamaraan ng aming klase ng CalculatorTest :

class CalculatorTest {
   	@Test
    	public void add() {
        	Calculator calc = new Calculator();
        	int result = calc.add(2, 3);
        	assertEquals(5, result);
    	}

   	@Test
    	public void sub() {
        	Calculator calc = new Calculator();
        	int result = calc.sub(10, 10);
        	assertEquals(0, result);
        }

   	@Test
    	public void mul() {
        	Calculator calc = new Calculator();
        	int result = calc.mul(-5, -3);
        	assertEquals(15, result);
    	}

   	@Test
    	public void div() {
        	Calculator calc = new Calculator();
        	int result = calc.div(2, 3);
        	assertEquals(0, result);
    	}
}

Ito ang hitsura ng isang tipikal na pagsubok sa JUnit. Mula sa kawili-wili: ang espesyal na pamamaraan na assertEquals() ay ginagamit dito : inihahambing nito ang mga parameter na ipinasa dito, gaya ng ipinahiwatig ng salitang katumbas sa pangalan nito.

Kung ang mga parameter na ipinasa sa assertEquals() ay hindi pantay, ang pamamaraan ay magtapon ng isang pagbubukod at ang pagsubok ay mabibigo. Ang pagbubukod na ito ay hindi mapipigilan ang iba pang mga pagsubok na tumakbo.

Mga komento
  • Sikat
  • Bago
  • Luma
Dapat kang naka-sign in upang mag-iwan ng komento
Wala pang komento ang page na ito