// CalculatorService.java
package org.edwith.webbe.calculatorcli;
public class CalculatorService {
public int plus(int value1, int value2) {
return value1 + value2;
}
public int minus(int value1, int value2) {
return value1 - value2;
}
public int multiple(int value1, int value2) {
return value1 * value2;
}
public int divide(int value1, int value2) throws ArithmeticException {
return value1 / value2;
}
}
// CalculatorServiceTest.java
package org.edwith.webbe.calculatorcli;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class CalculatorServiceTest {
CalculatorService calculatorService;
@Before
public void init() {
this.calculatorService = new CalculatorService();
}
@Test
public void plus() throws Exception{
// given
int value1 = 10;
int value2 = 5;
// when
int result = calculatorService.plus(value1, value2);
// then
Assert.assertEquals(15, result); // 결과와 15가 같을 경우에만 성공
}
@Test
public void divide() throws Exception{
// given
int value1 = 10;
int value2 = 5;
// when
int result = calculatorService.divide(value1, value2);
// then
Assert.assertEquals(2, result); // 결과와 2가 같을 경우에만 성공
}
@Test
public void divideExceptionTest() throws Exception{
// given
int value1 = 10;
int value2 = 0;
try {
calculatorService.divide(value1, value2);
}catch(ArithmeticException ae) {
Assert.assertTrue(true); // 이 부분이 실행되었다면 성공
return; // 메서드를 더 이상 실행하지 않음
}
Assert.fail(); // 이 부분이 실행되면 무조건 실패
}
}
<!-- pom.xml -->
...
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>11</source>
<target>11</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
Class 혹은 Method 우클릭 후 Run As -> JUnit Test
Class 선택시 메서드 전체에 대해 검사
Method 선택시 해당 메서드에 대해서만 검사
어노테이션 이름 | 설명 |
---|---|
@BeforeClass | 테스트 클래스가 실행되기 전에 딱 한번 실행된다. |
@AfterClass | 테스트 클래스의 모든 테스트 메서드가 실행이 끝나고 딱 한번 실행된다. |
@Before | 테스트 메서드가 실행되기 전에 실행된다. 테스트 메서드가 5개 있는 테스트 클래스를 실행하면 @Before가 붙은 메서드는 5번 실행된다. |
@After | 테스트 메서드가 실행된 후에 실행된다. 테스트 메서드가 5개 있는 테스트 클래스를 실행하면 @After가 붙은 메서드는 5번 실행된다. |
@Test | @Test 어노테이션이 붙은 테스트 메서드 |
reference
https://www.boostcourse.org/web326/lecture/58975/
https://www.boostcourse.org/web326/lecture/58976/