기본 설정
inteliJ gradle프로젝트 생성
build.gradle
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
testImplementation 'org.assertj:assertj-core:3.6.2'
}
src 디렉토리 생성
테스트 클래스 생성
alt + insert : test 함수 생성
예시 코드(Junit5, AssertJ 사용)
import static org.junit.jupiter.api.Assertions.*;
import static org.assertj.core.api.Assertions.*;
import java.util.ArrayList;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
public class MainTest {
@Test
@DisplayName("두 인자값이 같은지 확인")
void Test1() {
assertEquals(1,1);
}
@Test
@DisplayName("객체 안 숫자 인자값이 일치하는지 확인")
void Test2() {
assertEquals(1,new Money(1).COUNT);
}
@Test
@DisplayName("객체 안 문자 인자값이 일치하는지 확인")
void Test3() {
assertEquals("Hello!", Money.MESSAGE);
}
@Test
@Disabled
@DisplayName("객체 안 문자 인자값이 일치하지 않는지 확인")
void Test4() {
assertEquals("hello!", Money.MESSAGE);
}
// @ParameterizedTest
// @ValueSource(ints = { 1, 5 })
// void isPositive(int number) {
// assertTrue(number > 0);
// }
@Test
@DisplayName("assertj 동작 확인 : 문자열")
void Test6() {
assertThat("Hello, world! Nice to meet you.") // 주어진 "Hello, world! Nice to meet you."라는 문자열은
.isNotEmpty() // 비어있지 않고
.contains("Nice") // "Nice"를 포함하고
.contains("world") // "world"도 포함하고
.doesNotContain("ZZZ") // "ZZZ"는 포함하지 않으며
.startsWith("Hell") // "Hell"로 시작하고
.endsWith("u.") // "u."로 끝나며
.isEqualTo("Hello, world! Nice to meet you."); // "Hello, world! Nice to meet you."과 일치합니다.
}
@Test
@DisplayName("assertj 동작 확인 : 숫자")
void Test7() {
assertThat(3.14d) // 주어진 3.14라는 숫자는
.isPositive() // 양수이고
.isGreaterThan(3) // 3보다 크며
.isLessThan(4) // 4보다 작습니다
.isEqualTo(3, offset(1d)) // 오프셋 1 기준으로 3과 같고
.isEqualTo(3.1, offset(0.1d)) // 오프셋 0.1 기준으로 3.1과 같으며
.isEqualTo(3.14); // 오프셋 없이는 3.14와 같습니다
}
@Test
@DisplayName("assertj 동작 확인 : 배열")
void Test8() {
int[] ints = {1,2,3,4,5};
int[] ints2 = {1,2,3,4,5};
assertThat(ints)
.contains(1)
.isNotEmpty()
.doesNotContain(6)
.isEqualTo(ints2);
}
@Test
@DisplayName("assertj 동작 확인 : ArrayList")
void Test9() {
ArrayList<Integer> integers = new ArrayList<>();
for (int i = 1; i < 6; i++) {
integers.add(i);
}
System.out.println(integers);
assertThat(integers)
.contains(1)
.isNotEmpty()
.doesNotContain(6)
.isEqualTo(integers);
}
}
ArrayList 테스트코드