
ATDD는 TDD만큼 효율을 낼 수 있는 도구다 ?!
개발하다가 길을 잃은 적이 있다면 ...
요구사항을 잘못 이해한 적이 있다면 ...
이럴 때 올바른 요구사항을 가리키는 등대가 있었다면 ?
ATDD를 통해 효율적인 개발 프로세스를 경험할 수 있다.
인수 테스트는 API / E2E / 통합 테스트야?
인수 테스트는 테스트의 의도에 따라 구현 방법이 달라진다.
어떻게 구현하는지에 따라 정해지는 것이 아니라 테스트 의도에 따라 정해지는 것
내가 생각한 시나리오대로 동작하는지를 검증하는 것
백엔드 개발자가 단독 적용해서 실천해볼 수 있는 범위
고객은 프론트엔드 개발자 또는 API 활용하는 사람
API 접점에서 E2E 테스트
블랙 박스 테스트의 성격을 가지고 있음
A + TDD
테스트가 가능한 요구사항으로 소프트웨어를 개발하는 프로세스
요구사항을 검증하는 테스트 == 인수 테스트
TDD : 작은 단위의 요구사항을 테스트하고 구현함
ATDD : 시나리오 형태의 요구사항을 테스트하고 구현함
등대를 만든다는 관점에서는 비슷함
생산성이 두 배 증가한다.
명확한 시작과 끝을 제시한다.
직접 동작하는 테스트를 만듦으로써 문서보다 신뢰도가 높다.
배포하고 눌러보는 일련의 과정 스킵, 피드백을 빨리 받을 수 있다.
귀찮은 작업을 프로세스로 강제한다. (테스트, 문서화 등)
인수 테스트가 실패하는 동안은 기능이 구현되지 않은 것. 인수 테스트가 성공하면 기능 구현은 끝이다.
테스트에 사용할 ApplicationContext를 쉽게 지정하게 도와줌
REST API의 테스트와 검증을 단순화하도록 설계
HTTP 작업에 대한 검증을 위한 API 활용 가능
given - when - then 으로 나뉨
요청을 보내기 전 필요한 것을 설정
요청을 어디다 보낼지 설정
응답을 어떻게 할 건지 설정
JSON 문서를 읽기 쉽게 도와주는 자바 DSL
$..author, $.store.book[*]