disqus: brainbackdoor | false
kakaoChannel: false
floatFirstTOC: right

<aside> 📌 이 포스팅은 컨퍼런스 신청 플랫폼 테스트 코드를 작성할 때 세웠던 기준을 다루고 있어요.

</aside>

스크린샷 2023-11-09 오전 4.48.11.png

1. 인수테스트(Acceptance Test)

A. 인수조건을 테스트로 옮기기

Feature: 간략한 기능 서술
Scenario: 시나리오(예시) 제목
Given: 사전조건
When: 발생해야하는 이벤트
Then: 사후조건

--

And: 앞선 내용에 추가적인 내용 기술

Feature: Access Token 갱신 기능
  Scenario: Access Token 만료일을 연장한다.
    Given 만료된 Access Token을 생성한다.
    When Access Token의 만료일을 갱신한다.
    Then 유효한 Access Token이 조회된다.

public class BusinessAcceptanceTest extends AcceptanceTest {
    @Test
    @DisplayName("Access Token 만료일을 연장한다")
    public void renew() {
        // given
        final var client = 토큰_생성("NEXTSTEP", LocalDateTime.now());

        // when
        final var clientName = "다른이름";
        final var response = 토큰_갱신(
                client.getAccessToken(),
                clientName,
                LocalDateTime.now().plus(12, ChronoUnit.MONTHS)
        );

        // then
        final Boolean status = 토큰_상태_확인(client.getAccessToken());
        assertThat(status).isTrue();
        assertThat(response.getAccessToken()).isEqualTo(client.getAccessToken());
        assertThat(response.getClientName()).isEqualTo(clientName);
        assertThat(response.getExpiredAt().isAfter(client.getExpiredAt())).isTrue();
    }
}


B. 인수테스트 환경

a. 인수테스트 클래스 설정