HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🛁
공부기록
/
📉
Junit&AssertJ를 정리해보자!
📉

Junit&AssertJ를 정리해보자!

속성
Aug 24, 2021
JunitJunit의 assert메소드Junit의 어노테이션AssertJAssertJ 의 메소드REF

Junit

  • 자바의 단위 테스트를 위한 라이브러리

Junit의 assert메소드

  • assertEquals(A,B) - 객체 A와 B가 같은 값을 가지고 있는지 확인
Task task = new Task(); task.setTitle("test"); task.setId(1L); assertEquals(task.getTitle(), "test"); // true assertEquals(task.getId(),1L); // true
  • assertArrayEquals(A,B) - 배열 A와 B의 값이 같은지 확인
List<Task> arrA = new ArrayList<>(); List<Task> arrB = new ArrayList<>(); Task taskA = new Task(); taskA.setTitle("taskA"); taskA.setId(1L); arrA.add(taskA); arrB.add(taskA); assertArrayEquals(arrA.toArray(), arrB.toArray()); // true
  • assertSame(A,B), assertNotSame(A,B) - A와 B가 같은 객체인지 아닌지 확인
Task taskA = new Task(); taskA.setTitle("taskA"); taskA.setId(1L); Task taskB = new Task(); taskB.setTitle("taskB"); taskB.setId(2L); Task copyTask = taskA; assertSame(taskA,copyTask); // true assertNotSame(taskB, copyTask); // 값이 다르기 때문에 테스트 통과
  • assertTrue(A), assertFalse(A) - 조건 A가 참, 거짓인지 확인
Task taskA = new Task(); taskA.setTitle("taskA"); taskA.setId(1L); assertTrue(taskA.getTitle().equals("taskA")); // true assertFalse(taskA.getId().equals(2L)); // 거짓이기 때문에 테스트 통과
  • assertNull(A), assertNotNull(A) - A가 null인지 아닌지 확인
Task taskA = new Task(); assertNull(taskA.getId()); // true Task taskB = new Task(); taskB.setTitle("taskB"); taskB.setId(2L); assertNotNull(taskB.getId()); // 널이 아니기 때문에 테스트 통과

Junit의 어노테이션

  • @Test() : 메소드 위에 작성하여 테스트 메소드임을 명시해준다.
  • @Ignore : 메소드 위에 @Ignore를 붙이면 해당 메소드는 테스트 하지 않는다.
  • @BeforeEach : Test메소드 실행 전에 항상 먼저 실행시킬 메소드에 작성하여준다.
  • @BeforeAll : 테스트 클래스가 실행될 때 한번만 실행되는 메소드
  • @AfterEach : Test메소드 실행 후에 항상 실행시킬 메소드에 작성하여준다.
  • @AfterAll : 클레스에 테스트가 모두 끝난 뒤에 한번만 실행되는 메소드

AssertJ

  • Junit의 테스트코드에 사용되고 테스트코드의 가독성과 편의성을 더 높여주는 라이브러리다.
  • AssertJ의 테스트코드는 assertThat()으로 시작한다. 또한 메소드를 연쇄적으로 호출하여 테스트 코드를 작성할 수 있다.

AssertJ 의 메소드

  • isEqualsTo(Object o) : 실제 값이 주어진 값과 같은지 확인
Task taskA = new Task(); taskA.setId(1L); taskA.setTitle("taskA"); assertThat(taskA.getId()).isEqualTo(1L); // 값이 같다 true assertThat(taskA.getTitle()).isEqualTo("taskB"); // 값이 다르다 false
notion image
  • isNotEqualsTo(Object o) : 실제 값이 주어진 값과 다른지 확인
Task taskA = new Task(); taskA.setId(1L); taskA.setTitle("taskA"); assertThat(taskA.getId()).isNotEqualTo(2L); // 값이 다르기 때문에 테스트 통과 assertThat(taskA.getTitle()).isNotEqualTo("taskA"); // 값이 같기 때문에 테스트 실패
  • isInstanceOf(Class<?> Type), isNotInstanceOf(Class<?> Type) : 실제 값이 주어진 유형의 인스턴스 인지 확인
Task taskA = new Task(); // 같은 클래스 taskA.setId(1L); taskA.setTitle("taskA"); assertThat(taskA).isInstanceOf(Task.class); // 같은 클래스 true assertThat(taskA).isNotInstanceOf(org.springframework.scheduling.config.Task.class); // 다른클래스 true
  • isNull, isNotNull : null인지 확인 / null이 아닌지 확인
Task taskA = new Task(); // 같은 클래스 taskA.setId(1L); assertThat(taskA.getTitle()).isNull(); // null이므로 true assertThat(taskA.getId()).isNotNull(); // null이 아니므로 테스트 통과
  • isSameAs, isNotSameAs : 실제 값이 주어진 값과 동일한지 확인 / 다른지 확인
Task taskA = new Task(); taskA.setId(1L); taskA.setTitle("taskA"); Task copyTask = taskA; Task taskB = new Task(); taskB.setId(1L); taskB.setTitle("taskA"); assertThat(taskA).isSameAs(copyTask); // 같은 객체를 참조하므로 true assertThat(taskA).isSameAs(taskB); // 값은 같지만 다른 객체 이므로 false assertThat(taskA).isNotSameAs(taskB); // 다른 객체이기 때문에 테스트 통과

REF

  • https://bibi6666667.tistory.com/231