마이크로서비스를 구축할 때 단위테스트, 통합 테스트, 컴포넌트 테스트, 계약 테스트, 엔드투엔트 테스트까지 모두 사용해야한다.
엔드투엔드 테스트 : 모든 종류의 테스트 가운데 피라미드 위에 있는 테스트. 구현하고 관리가 가장 어려운 부분이다.
테스트 쉽게 유지가혹 비즈니스 로직 집중위해 Cucumber 프레임워크로 몇 사례 다룬다.
애플리케이션 전체가 잘 동작하는지 확인 위해서 최소한 두가지 기능 확인
1. user가 request 보내면 알맞은 response 받고 정답 여부 따라 점수 얻음
2. 리더보드는 user의 순위를 정확하게 반영
엔드투엔드 케이스를 어떤 레벨에서 구현할지 결정
큐컴버 (행위에 초점을 맞춘 강력한 테스트 도구)
테스트 명세를 사람 언어로 작성 -> 큐컴버가 테스트 실행하는 스트립트로 변환 -> 결과 보고서 출력
큐컴버는 여러 언어와 프레임워크 지원한다.
기능은 여러 개의 .feature 파일로 구성
상단 -> 기능에 대한 설명 (엔진에 의해 무시됨)
기능 -> 테스트 케이스 정의하는 여러 시나리오로 구성
각 시나리오 ->BDD 키워드이용한 여러 스텝으로 정의 (Given, When, Then, And, But)
기능 안의 각 시나리오는 chache된 동일한 객체 내에서 실행된다.
== 같은 시나리오의 step은 서로 상태 공유할 수 있으나, 다른 시나리오와는 상태 공유 안된다. == step 에서 여러 클래스 사용해도 메모리에 일부 데이터 저장할 수있다
스프링 부트가 필요없다! 메이븐 아키타입(archetypes)으로 메이븐 프로젝트 간단히 맘ㄴ든다.
블랙박스 테스트에 대한 오해
이 책을 통해서 마이크로서비스 관련 주요 주제들을 다뤄봤다.
빈 프로젝트를 시작으로 계층으로 구성된 마이크로서비스 까지 만들어보았다.
책이 작은 일체형으로부터 시작하는게 왜 좋은지 알려주어서 좋았고 작은 사이즈로 설명을 하고 테스트 주도 개발 접근법으로 관련 주제들을 알려줘서 그나마 이해를 할 수 있었다고 생각한다.
나중에 프로젝트에 msa를 적용하게 된다면 지식이 깊지 않은 상태로 아키텍처를 구축하면 오히려 더 큰 혼란이 생길 것 이라는 예고편을 본 것 같기도 하다. ^^
프로젝트의 규모가 커지거나 사용자의 많아질 수록 회사들이 마이크로서비스 아키텍처를 구축하려 하는지는 언뜻 알 것도같다.
다음 스터디 하려는 책은 만만치않은 양의 지식을 전달하고 있어서 이 지식들을 받아들이기 위해서 예열을 하기에 좋은 책이라고 생각한다.
(물론 예열용으로만 사용할만한 책이 아니다. 전체적으로 소화하기에 더 많은 시간이 투자되어야 함을 안다. )
저자가 책의 맨 마지막에 써주었던 것처럼 저도
이 책을 보면서 굉장히 즐거웠고 무엇보다 많이 배웠습니다!