BDD(Behavior Driven Development) : 어플리케이션이 어떻게 행동해야 하는지에 대한 공통된 이해를 구성하는 방법으로, TDD에서 창안했다.
행동에 대한 스팩
Mockito는 BddMockito라는 클래스를 통해 BDD 스타일의 API를 제공한다
When → Given, Verify → Then
//다음 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 - 아키텍쳐 테스트 중 현재 실무에서 필요한 운영 이슈 테스트와 아키텍쳐 테스트를 먼저 들을 예정
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 |