JUnit рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрдиреЗрдХреНрдЯ рдХрд░рдд рдЖрд╣реЗ

рдЬрд╛рд╡рд╛ рдХреЛрдбрдЪреНрдпрд╛ рдЪрд╛рдЪрдгреАрд╕рд╛рдареА, рдЖрдордЪреНрдпрд╛рдХрдбреЗ JUnit рдирд╛рд╡рд╛рдЪреА рдПрдХ рдЙрддреНрддрдо рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрд╣реЗ . рд╣реЗ рдЙрддреНрддрдо рдХрд╛рдо рдХрд░рддреЗ, рддреЗ рд╕рддрдд рдЕрдкрдбреЗрдЯ рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рддреЗ рдЦреВрдк рд▓реЛрдХрдкреНрд░рд┐рдп рдЖрд╣реЗ рдЖрдгрд┐ рдЕрд░реНрдерд╛рддрдЪ Intellij IDEA рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдЕрддрд┐рд╢рдп рдШрдЯреНрдЯрдкрдгреЗ рд╕рдорд╛рдХрд▓рд┐рдд рдЖрд╣реЗ.

рдЖрддрд╛ рдкреНрд░рддреНрдпреЗрдХрдЬрдг рдпрд╛ рдлреНрд░реЗрдорд╡рд░реНрдХрдЪреА рдкрд╛рдЪрд╡реА рдЖрд╡реГрддреНрддреА рд╡рд╛рдкрд░рдд рдЖрд╣реЗ - JUnit 5 , рдЬрд░реА рдмрд░реНтАНрдпрд╛рдЪ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреНрдпреЗ рдЖрдкрдг рдЕрджреНрдпрд╛рдк рддреНрдпрд╛рдЪреА рдЪреМрдереА рдЖрд╡реГрддреНрддреА рд╢реЛрдзреВ рд╢рдХрддрд╛. рддреЗ рдлрд╛рд░рд╕реЗ рд╡реЗрдЧрд│реЗ рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ рддрд░реАрд╣реА рдЖрдореНрд╣реА рдирд╡реАрдирддрдо рдПрдХ рдХрдЯрд╛рдХреНрд╖ рдЯрд╛рдХреВ. рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рддреБрдореНрд╣реА рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рдЪрд╛рдЪрдгреНрдпрд╛ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХрд░рд╛рд▓ рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдорд╛рдЭреНрдпрд╛ рдирд┐рд╡рдбреАрд▓рд╛ рдорд╛рдиреНрдпрддрд╛ рджреНрдпрд╛рд▓.

рддрд░, рдкреНрд░рдХрд▓реНрдкрд╛рдд JUnit рдХрд╕реЗ рдЬреЛрдбрд╛рдпрдЪреЗ? рдорд╛рд╡реЗрди рд╢рд┐рдХрд▓реНрдпрд╛рдирдВрддрд░ рд╣реЗ рд╕реЛрдкреЗ рд╣реЛрдИрд▓: рдлрдХреНрдд рд╣рд╛ рдХреЛрдб рддреБрдордЪреНрдпрд╛ pom.xml рдордзреНрдпреЗ рдЬреЛрдбрд╛:

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

рддрд╕реЗ, рдЬрд░ рддреБрдореНтАНрд╣рд╛рд▓рд╛ Maven рдиреЗ рддреБрдордЪреНтАНрдпрд╛ рдЪрд╛рдЪрдгреНтАНрдпрд╛ рдмрд┐рд▓реНтАНрдб рд╕реНтАНрдЯреЗрдЬрд╡рд░ ( рдЪрд╛рдЪрдгреА рдЯрдкреНрдкрд╛ ) рдЪрд╛рд▓рд╡рд╛рдпрдЪреА рдЕрд╕рддреАрд▓ рддрд░ рддреБрдореНтАНрд╣рд╛рд▓рд╛ 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>

@рдЪрд╛рдЪрдгреА рднрд╛рд╖реНрдп

рд╕рдордЬрд╛ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рд╡рд░реНрдЧ рдЖрд╣реЗ рдЬреНрдпрд╛рдЪреА рддреБрдореНрд╣рд╛рд▓рд╛ рдЪрд╛рдЪрдгреА рдХрд░рд╛рдпрдЪреА рдЖрд╣реЗ. рд╣реЗ рдХрд░рдгреНрдпрд╛рдЪрд╛ рд╕рд░реНрд╡реЛрддреНрддрдо рдорд╛рд░реНрдЧ рдХреЛрдгрддрд╛ рдЖрд╣реЗ? рдЪрд▓рд╛ рдХрд╛рд╣реА рдЙрджрд╛рд╣рд░рдгрд╛рдВрд╕рд╣ рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВ, рдХрд╛рд░рдг рдЕрдореВрд░реНрдд рд╡рд░реНрдЧрд╛рдЪреА рдЪрд╛рдЪрдгреА рдШреЗрдгреЗ рдХрдареАрдг рдЖрд╣реЗ :)

рд╕рдордЬрд╛ рдЖрдкрд▓реНрдпрд╛рдХрдбреЗ рдХреЕрд▓реНрдХреНрдпреБрд▓реЗрдЯрд░ рд╡рд░реНрдЧ рдЖрд╣реЗ рдЬреЛ 4 рдореВрд▓рднреВрдд рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░реВ рд╢рдХрддреЛ: рдмреЗрд░реАрдЬ, рд╡рдЬрд╛рдмрд╛рдХреА, рдЧреБрдгрд╛рдХрд╛рд░ рдЖрдгрд┐ рднрд╛рдЧрд╛рдХрд╛рд░. рдЪрд▓рд╛ рддреЗ рд▓рд┐рд╣реВрдпрд╛:

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;
    	}
}

рдЖрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рд╡рд░реНрдЧрд╛рдЪреНрдпрд╛ рдкрджреНрдзрддреА рддрдкрд╛рд╕рд╛рдпрдЪреНрдпрд╛ рдЖрд╣реЗрдд. рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдзреАрдЪ рдорд╛рд╣рд┐рдд рдирд╛рд╣реА, рднрд╡рд┐рд╖реНрдпрд╛рдд рддреЗ рдХрд╛рд╣реАрддрд░реА рдмрджрд▓рддреАрд▓ рдЖрдгрд┐ рд╕рд░реНрд╡рдХрд╛рд╣реА рдХрд╛рд░реНрдп рдХрд░рдгреЗ рдерд╛рдВрдмрд╡реЗрд▓. рдЖрдореНрд╣реА рддреНрдпрд╛рд╕рд╛рдареА рдЪрд╛рдЪрдгреНрдпрд╛ рдХрд╢рд╛ рд▓рд┐рд╣реВ рд╢рдХрддреЛ?

рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рджреБрд╕рд░рд╛ рд╡рд░реНрдЧ рддрдпрд╛рд░ рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧреЗрд▓. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреЗ рд╕рд╣рд╕рд╛ рд╕рдорд╛рди рдирд╛рд╡ рдШреЗрддрд╛рдд рдЖрдгрд┐ рдЪрд╛рдЪрдгреА рдкреНрд░рддреНрдпрдп рдЬреЛрдбрддрд╛рдд . рдкреНрд░рддреНрдпреЗрдХ рдкрджреНрдзрддреАрд╕рд╛рдареА, рддреБрдореНрд╣реА рдХрд┐рдорд╛рди рдПрдХ рдЪрд╛рдЪрдгреА рдкрджреНрдзрдд рдЬреЛрдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдг:

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

рдкрджреНрдзрддреАрдЪреЗ рдирд╛рд╡ рдЪрд╛рдЪрдгреА рдпрд╛ рд╢рдмреНрджрд╛рдиреЗ рд╕реБрд░реВ рд╣реЛрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА , рдкрд░рдВрддреБ рдЖрддрд╛ рд╣реЗ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА.

JUnit рдЪрд╛рдЪрдгреА рдЙрджрд╛рд╣рд░рдгреЗ

рдЪрд▓рд╛ рдХрд╛рд╣реА рдЙрджрд╛рд╣рд░рдгреЗ рд▓рд┐рд╣реВ рдЬреНрдпрд╛рдд рдЖрдкрдг рдЖрдордЪреНрдпрд╛ рдХреЕрд▓реНрдХреНрдпреБрд▓реЗрдЯрд░ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕рдЪреНрдпрд╛ рдкрджреНрдзрддреА рддрдкрд╛рд╕реВ :

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);
    	}
}

рд╕рд╛рдорд╛рдиреНрдп JUnit рдЪрд╛рдЪрдгреА рдЕрд╕реЗ рджрд┐рд╕рддреЗ. рдордиреЛрд░рдВрдЬрдХ рд╡рд░реВрди: assertEquals() рд╣реА рд╡рд┐рд╢реЗрд╖ рдкрджреНрдзрдд рдпреЗрдереЗ рд╡рд╛рдкрд░рд▓реА рдЖрд╣реЗ : рддреА рддреНрдпрд╛рд╕ рдкрд╛рд╕ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдЪреА рддреБрд▓рдирд╛ рдХрд░рддреЗ, рдЬрд╕реЗ рдХреА рддреНрдпрд╛рдЪреНрдпрд╛ рдирд╛рд╡рд╛рддреАрд▓ equals рдпрд╛ рд╢рдмреНрджрд╛рдиреЗ рд╕реВрдЪрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ.

assertEquals() рд▓рд╛ рдкрд╛рд╕ рдХреЗрд▓реЗрд▓реЗ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рд╕рдорд╛рди рдирд╕рд▓реНрдпрд╛рд╕, рдкрджреНрдзрдд рдЕрдкрд╡рд╛рдж рдХрд░реЗрд▓ рдЖрдгрд┐ рдЪрд╛рдЪрдгреА рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдИрд▓. рд╣рд╛ рдЕрдкрд╡рд╛рдж рдЗрддрд░ рдЪрд╛рдЪрдгреНрдпрд╛ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдкрд╛рд╕реВрди рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдгрд╛рд░ рдирд╛рд╣реА.