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
    }

 

 

 

 

 

 

 

 

참고

www.baeldung.com/assertj-exception-assertion

http://joel-costigliola.github.io/assertj/assertj-core.html