상세 컨텐츠

본문 제목

TIL : Mockito

Programming/TIL

by 홍잭슨 2021. 12. 21. 09:01

본문

12/21 Mockito

Mockto BDD 스타일 API

BDD(Behavior Driven Development) : 어플리케이션이 어떻게 행동해야 하는지에 대한 공통된 이해를 구성하는 방법으로, TDD에서 창안했다.

행동에 대한 스팩

  • Title
  • Narrative
    • As a / I want / so that
  • Acceptance criteria
    • Given / When / Then

Mockito는 BddMockito라는 클래스를 통해 BDD 스타일의 API를 제공한다

When → Given, Verify → Then

Mockito 연습문제

//다음 StudyService 코드에 대한 테스트를 Mockito를 사용해서 Mock 객체를 만들고 
//Stubbing과 Verifying을 사용해서 테스트를 작성하세요.
public Study openStudy(Study study) {
    study.open();
    Study openedStudy = repository.save(study);
    memberService.notify(openedStudy);
    return openedStudy;
}
​
@DisplayName("다른 사용자가 볼 수 있도록 스터디를 공개한다.")
@Test
void openStudy() {
    // Given
    StudyService studyService = new StudyService(memberService, studyRepository);
    Study study = new Study(10, "더 자바, 테스트");
    // TODO studyRepository Mock 객체의 save 메소드를호출 시 study를 리턴하도록 만들기.
    given(studyRepository.save(10)).willReturn(Optional.of(study));
    // When
    studyService.openStudy(study);
​
    // Then
    // TODO study의 status가 OPENED로 변경됐는지 확인
    // TODO study의 openedDataTime이 null이 아닌지 확인
    // TODO memberService의 notify(study)가 호출 됐는지 확인.
    assertEquals(OPENED, study.getStatus);
    assertNotNull(study.getOpenedDataTime);
    then(memberService).should(times(1)).nodify(study);
}

JMeter - 도커테스트, Chaos Monkey - 운영 이슈 테스트,  ArchUnit - 아키텍쳐 테스트 중 현재 실무에서 필요한 운영 이슈 테스트와 아키텍쳐 테스트를 먼저 들을 예정

'Programming > TIL' 카테고리의 다른 글

ES 강의 정리  (0) 2024.02.25
TIL : TIL 이전  (0) 2022.02.19
TIL : JUnit, Mockito  (0) 2021.12.20
TIL : JUnit - 테스트 순서, Properties  (0) 2021.12.17
TIL : JUnit  (0) 2021.12.15

관련글 더보기