REST API를 테스트하고 있습니다. JSON 구조를 반환한다고 가정 해 봅시다. 서버를 테스트하는 가장 좋은 방법은 무엇입니까? 각 테스트 단계는 이전의 모든 성공한 경우에만 성공할 수 있습니다.
구조 A : 모든 것을 한 번에 테스트
- Test method 1:
- make server request
- assert http response code was 200
- assert returned file is not empty
- assert returned file has valid JSON syntax
- assert returned JSON contains key X
이것이 가장 좋은 해결책 인 것 같습니다.
장점 :
- 하나의 서버 요청
- "서버가 X 키로 JSON을 반환합니까?"
구조 B : 각 테스트에 점차적으로 어설 션 추가
- Test method 1:
- make server request
- assert http response code was 200
- Test method 2:
- make server request
- assert returned file is not empty
- Test method 3:
- make server request
- assert returned file has valid JSON syntax
- Test method 4:
- make server request
- assert returned JSON contains key X
이것이 내가 시작한 방법이며 모든 방법 이 한 가지만을 테스트하기 때문에 이것이 더 좋은 분리를 만들기 때문에 이것이 갈 길이되어야한다고 확신했습니다 . 그러나 지금은 이것들이 단위 테스트가 아니기 때문에 분리가 적절하지 않으며 행동을 전체적으로 테스트해야한다고 생각합니다.
구조 C : 요청을 한 번 만들고 캐시 된 응답에 대해 별도의 테스트 방법을 실행
- make server request and cache it (allow read-only access)
- Test method 1:
- assert http response code was 200 on cached server request
- Test method 2:
- assert returned file is not empty on cached server request
- Test method 3:
- assert returned file has valid JSON syntax on cached server request
- Test method 4:
- assert returned JSON contains key X on cached server request
장점 :
- 반복되는 (비싼) 서버 요청이 없음
- 여전히 단일 어설 션 테스트 방법이 있습니다
가장 합리적인 테스트 구조는 무엇입니까?