05. JUnit 5 조건에 따라 테스트 실행하기

김성수·2022년 12월 25일
0

참고할 라이브러리
org.junit.jupiter.api.Assumptions

asumeTrue()

  • 어떤 특정한 조건에서 테스트 수행하고자 할때, 사용하는 Test메서드

    해당 내용은 다음과 같다.
    "테스트 환경이 LOCAL에서, 환경변수의 값이 "TEST_ENV"인지, 아닌지 확인하고, 맞다면 아래의 나머지 테스트 코드를 수행하라." 라는 의미이다.
    그런데 체크한 내용들을 보면,
  1. null값이 들어가있고,
  2. assumption is not true여서
  3. 테스트가 제대로 되지 않는 결과를 보인다.

그래서 환경변수를 다음과 같이 설정쓰 했다.

인텔리제이 재실행 한다.(실행시 이미 수정 전의 정보들을 읽어오기 때문에, 환경변수들을 다시 불러오려면, 재실행 해줘야 한다.
그리고 테스트 실행!

이쁜 모양을 볼 수 있다.

위의 assumeTrue가 참일 때, 아래의 테스트 코드를 수행하는 방식처럼 다른 방식 또한 있는데, 바로 assumingThat 을 사용하면 된다.

이렇게 1번이 성립하면, 2번 영역의 테스트(혹은 코드)를 수행하라는 내용이다.

나는 환경변수 두개 넣고, assertAll을 한 번 사용해 봤다.

이렇게... 후후.. 이쁘다..


또 다른 방법!
코드로 특정 조건을 설정하는 것이 아니라, 애너테이션으로 설정하는 방법이 있다.
먼저 OS의 조건을 주기 위해,
@EnabledOnOs@DisabledOnOs가 있다.

설명
@EnabledOnOs값으로 들어가는 OS환경일 때, 테스트를 수행.
@DisabledOnOs값으로 들어가는 OS환경일 떄, 테스트를 수행하지 않음.
@EnabledOnJRE값으로 들어가는 JRE 환경일때, 테스트를 수행
@DisabledOnJRE값으로 들어가는 JRE 환경일 때, 테스트를 수행하지 않음.
@EnabledIfEnviromentVariable값으로 named(환경변수 이름)와 match(값)를 줬을 때, 해당 환경변수와 값이 매칭되면 테스트를 수행

만약 여러개의 값을 주고 싶다면, 중괄호로 묶어서 값을 준다.(자바의 애너테이션)

위 사진과 같이 사용가능하다.


이런식으로...가능하다.

결과는

이런 식으로 예상대로 나왔다.
(참고로 나는 윈도우 사용자다..)


⚡ 생각대로 살지 않으면 사는대로 생각한다.
⚡ 나는 어차피 잘 될 놈이다. 이미 잘 되고 있고, 계속해서 잘 되고 있다.

profile
쌩수 Git >> https://github.com/SsangSoo?tab=repositories

0개의 댓글