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() рд▓рд╛ рдкрд╛рд╕ рдХреЗрд▓реЗрд▓реЗ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рд╕рдорд╛рди рдирд╕рд▓реНрдпрд╛рд╕, рдкрджреНрдзрдд рдЕрдкрд╡рд╛рдж рдХрд░реЗрд▓ рдЖрдгрд┐ рдЪрд╛рдЪрдгреА рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдИрд▓. рд╣рд╛ рдЕрдкрд╡рд╛рдж рдЗрддрд░ рдЪрд╛рдЪрдгреНрдпрд╛ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдкрд╛рд╕реВрди рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдгрд╛рд░ рдирд╛рд╣реА.