JAVA
AssertJ 사용하기
91cm
2020. 9. 15. 23:09
AssrtJ란?
- 테스트코드 작성을 쉽게 도와주는 라이브러리
- 메소드 체이닝 지원
준비
java8 이상 -> 3.x 버전
java7 이하 -> 2.x버전
maven
<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
testCompile("org.assertj:assertj-core:3.11.1")
사용방법
static import해놓으면 훨씬 더 깔끔하게 사용가능하다
import static org.assertj.core.api.Assertions.assertThat;
값이 같은지 검증하기(주소값 아님)
- isEqualTo()
@Test
public void eq(){
String name ="최민";
assertThat(name).isEqualTo("최민"); // success
}
List속성값 검증하기
- extraction("속성명").containsExactly("필드의 값1", "필드의 값2","필드의 값3")
@Test
public void list(){
User user1 = new User("피카츄");
User user2 = new User("파이리");
User user3 = new User("꼬부기");
List<User> list = new ArrayList<>();
list.add(user1);
list.add(user2);
list.add(user3);
assertThat(list).extracting("name")
.containsExactly("피카츄","파이리","꼬부기");//success
assertThat(list).extracting("name")
.containsExactly("피카츄"); //fail
}
Object 객체 값 검증하기
@Test
public void objectValue(){
User user = new User("피카츄");
assertThat(user).extracting("name").isEqualTo("피카츄"); // success
}
예외 검증하기
@Test
public void expt(){
assertThatThrownBy(() -> {
throw new IllegalArgumentException("ABC 에러발생");
}).isInstanceOf(IllegalArgumentException.class)
.hasMessageContaining("ABC 에러발생"); // 에레메세지 일치 success
}
참고