본문 바로가기
Java

[Java] Mockito 사용법 (5) - BDD 스타일 API (+ BDD란?)

by 노력남자 2022. 9. 6.
반응형

이번 포스팅에선 Mockito가 지원하고 있는 BDD 스타일 API에 대해 알아보겠습니다.

 

먼저 BDD에 대한 개념부터 알아보고 가겠습니다.

 

BDD (Behavior Driven Development)란?

 

TDD (Test Driven Development)는 "테스트"를 기준으로 하는 개발 방법론입니다.

 

BDD (Behavior Driven Development)는 "행동"을 기준으로 하는 개발 방법론입니다. TDD를 참고했다고 하네요.

 

위키피디아에 나와있는 BDD 설계 방법입니다.

 

테스트할 때 Title, Narrative까진 사용하지 않고 Acceptance criteria만 사용합니다.

 

Title

An explicit title.

Narrative

A short introductory section with the following structure:

- As a: the person or role who will benefit from the feature;
- I want: the feature;
- so that: the benefit or value of the feature.

Acceptance criteria

A description of each specific scenario of the narrative with the following structure:

- Given: the initial context at the beginning of the scenario, in one or more clauses;
- When: the event that triggers the scenario
- Then: the expected outcome, in one or more clauses.

Given : 초기 context 값

When : 테스트하려는 조건

Then : 테스트 결과

 

라고 생각하시면 됩니다.

 

Mockito는 그럼 어떻게 BDD를 지원할까?

 

Mockito는 BDD 스타일로 테스트 코드를 짤 수 있게 BDDMockito 클래스를 제공합니다.

 

엄청 간단합니다. 기존 메소드를 아래와 같이 변경해주면 됩니다.

 

when -> given

verify -> then

 

@Test
void testVerifyTimes() {
	//given
	//when -> given, when(userService.getUser()).thenReturn(null); 
	given(userService.getUser()).thenReturn(null);
        
	//when
	userService.getUser();
	userService.getUser();
	
	//then
	//verify -> then, verify(userService, times(2)).getUser();
	then(userService, times(2)).getUser();
}

 

이상으로 Mockito에 관한 정리를 마치겠습니다.

 

감사합니다.

반응형

댓글