라이브러리 의존성 설정
Java8 이상 기반 프로젝트는 3.x 버전을, Java7 이하 기반 프로젝트는 2.x 버전을 사용해야 한다.
Gradle
testCompile 'org.assertj:assertj-core:3.6.2'
Maven
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<!-- use 2.6.0 for Java 7 projects -->
<version>3.6.2</version>
<scope>test</scope>
</dependency>
테스트 대상 지정
모든 테스트 코드는 assertThat() 메서드에서 출발하며, 다양한 메서드를 연쇄 호출해서 코드를 작성함.
assertThat(테스트 타켓).메소드1().메소드2().메소드3();
문자열 테스트
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."과 일치합니다.
숫자 테스트
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 Code' 카테고리의 다른 글
콘솔 기반 UI 테스트를 어떻게 해야할까? (0) | 2023.10.20 |
---|---|
[JUnit] 테스트하기 어려운 코드를 테스트 하기 쉬운 코드로 (0) | 2023.04.22 |
[JUnit] 스트림(Stream)을 이용한 JUnit기반 테스트 코드 작성 (0) | 2023.04.14 |
[JUnit] assertj 활용한 테스트 코드 작성 (0) | 2023.04.12 |
[Java] JUnit을 이용한 테스트 및 리팩토링 (0) | 2023.03.02 |
댓글