Java Test 1

Song_MinGyu·2022년 7월 3일
0

Java

목록 보기
2/3

Java Test code

보통 Spring, 또는 Gradle이나 Maven으로 소스코드를 관리하는 일이 많다.
그리고 test가 자동으로 생성되는 경우를 볼 수 있는데 해당 패키지 내부에서 단위 테스팅을 진행 할 수 있다. 그리고 보통 자바에서 Assertion이라는 테스트 코드를 사용한다.
Assertion에서는 JUnit 또는 assertj를 사용하게 되는데 주로 사용하는 코드를 정리해본다.

Import

import static org.assertj.core.api.Assertions...;
import static org.junit.jupiter.api.Assertions...;
보통 import할 때 앞 부분을 생략하고 바로 사용하기 때문에 import static을 사용하여 import 처리를 한다.

assertj 정리

1. Assertions.assertThat(param)...

assertj 관련 assert를 사용할 경우, Assertions.assertThat()... 형식으로 사용이 가능하지만 해당 포스팅에서는 static import를 사용하므로 바로 assertThat으로 접근하여 사용한다.

2. isEqualTo(param) / isNotEqualTo(param)

assertThat(givenParam).isEqualTo(whenParam);
assertThat(givenParam).isNotEqualTo(whenParam);

어떠한 입력 값(given)을 특정한 메서드에 넣고 그 결과(when)가 같은지/다른지 확인하는 메서드
isEqualTo의 경우 given 파라미터와 when 파라미터가 같아야 테스트 통과가 되며,
isNotEqualTo의 경우 given 파라미터와 when 파라미터가 달라야 테스트 통과가 가능하다.

3. isSameAs(param) / isNotSameAs(param)

assertThat(givenParam).isSameAs(whenParam);
assertThat(givenParam).isNotSameAs(whenParam);

isEqualTo와 같이 입력 값과 결과값이 같은지 확인하는 메서드이다. 하지만 두개의 차이점으로는
isEqualTo의 경우, '결과 값'만 체크하나, isSameAs의 경우 결과와 비교 대상 자체가 같은가 차이를 볼 수 있다. 즉, 같은 메모리 위치에 있어야 같다.

4. isNull() / isNotNull()

assertThat(givenParam).isNull();
assertThat(givenParam).isNotNull();

입력 값이 NULL/Not NULL 인지 확인한다.

5. isInstanceOf(param) / isNotInstanceOf(param)

assertThat(givenParam).isInstanceOf(CheckClass.class);
assertThat(givenParam).isNotInstanceOf(CheckClass.class);

입력 값이 주어졌을 때, 해당 입력 값의 객체가 확인할 객체가 맞는지 아닌지 확인

JUnit

assertThrows

assertThrows(Exception.class,()->Run Exception Method);
//ex Spring Bean을 호출했으나 A 타입에 여러개의 Bean이 존재하는 상황
assertThrows(NoUniqueBeanDefinitionException.class,()->config.getBean(A.class));

assertThrows는 첫 번째 파라미터로 예상하는 예외상황.class, 두번째는 예외상황을 만들 메소드를 람다형식으로 넣으면 된다.

이 외에도 여러가지 메소드나 MVC, 데이터베이스 체크 등등... 상당히 많은 방법이 있으나 작성한 내용은 범용적으로 자주 사용된다고 생각해서 메모했다. 또 생각나는 것이 있으면 추가적으로 작성할 예정

profile
Always try to Change and Keep this mind

0개의 댓글