PaymentService 테스트의 문제점
- 우리가 제어할 수 없는 외부 시스템에 문제가 생기면?
- ExRateProvider가 제공하는 환율 값으로 계산한 것인가?
- 환율 유효 시간 계산은 정확한 것인가?
테스트에 공통적으로 드러나는 특징
테스트의 구성 요소
1. 테스트 대상 (SUT, System Under Test)
![image.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/a7e1e85e-d6f9-43d3-8475-0933babeaf4a/f3f1ad33-261c-45e7-ad04-56dafa76334e/image.png)
- 지금 테스트 되고 있는 시스템이 어떤 것인지
- 예) Sort 오브젝트
2. 테스트
![image.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/a7e1e85e-d6f9-43d3-8475-0933babeaf4a/0bf8635b-e685-46ff-b11b-9501f4a054fe/image.png)
- 테스트를 해야하므로 테스트 기능을 넣어 놓은 테스트도 필요
- 예) SortTest
3. 협력자(Collaborator)
![image.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/a7e1e85e-d6f9-43d3-8475-0933babeaf4a/62ac9990-73e2-48a0-970d-30fe01575398/image.png)