Community

TCA에서 Testing Effects 구성하기

테스트 환경을 구축하는건 프로젝트 초기 단계에서도 그렇고 리팩토링 시에도 항상 고려할 점도 많고 어렵게 다가옵니다. TCA의 장점 중 하나는 테스트가 용이하고 그에 따라 테스터블한 환경 구축 및 로직들을 분리해 작은 단위의 테스트에서 융합된 컴포지션한 테스트까지 자유자재로 어느정도 쉽게 해줄 수 있다는 특징이 Point-Free가 제시하는 TCA의 5가지 핵심 중 하나입니다. 그렇기에 사실 TCA를 사용하면서 가장 많이 테스트를 해봐야하고 필요한 부분이 Effect 부분입니다. 예를들어 네트워킹 구현을 했고 이 서비스를 리듀서에서 불러와 Effect를 실행시켜야 하는데 여기서 실제로 Effect 실행은 그대로 하되 실 네트워킹까진 필요 없을 수 있으며 더미 데이터 및 다른 동작을 원할 수도 있습니다. 이러한 경우들에서 EffectPublisher의 static method인 unimplemented를 사용하면서 적절한 환경을 구성해두고 사용할 수 있습니다😄 개인적으로 "테스트 코드를 어떤 경우라도 무조건 선행되어야하고 없으면 좋은 프로젝트가 아니야!"라고 생각하진 않습니다. 테스트를 위한 프로젝트인지 주객전도가 될 수도 있다고 생각해요. 그렇지만 테스터블한 환경을 구축하는건 꼭 필수적이라고 생각합니다🙌

알림

알림이 없습니다