[Spring-library]AssertJ란?

AsertJ란?

java test를 위해 좀 더 풍부한 문법을 제공하고 메서드 체이닝을 통해 직관적인 테스트 흐름을 작성할 수 있도록 개발된 오픈소스 라이브러리이다.

최근 junit에 필수로 사용되고 있는 추세이다.

공식홈페이지

시작하기

라이브러리 의존성 설정

Maven

1
2
3
4
5
6
7
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<!-- use 2.9.1 for Java 7 projects -->
<version>3.11.1</version>
<scope>test</scope>
</dependency>

Gradle

1
testCompile("org.assertj:assertj-core:3.11.1")

또는 Java 7 프로젝트의 경우 버전 2.9.1

1
testCompile("org.assertj:assertj-core:2.9.1")

AssertJ 메소드 임포트

1
import static org.assertj.core.api.Assertions.*;

실제 사용

1
assertThat(objectUnderTest). // code completion -> assertions specific to objectUnderTest

모든 테스트 코드는 assertThat() 메소드에서 시작한다.

###문자열 테스트

1
2
3
4
5
6
7
8
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."과 일치합니다.

숫자 테스트

1
2
3
4
5
6
7
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와 같습니다