[javascript] Jest에서의 테스트 더블 활용 시 발생할 수 있는 문제점은 어떤 것들이 있는가?

하지만 테스트 더블을 활용할 때 주의할 몇 가지 문제점이 있습니다. 첫째로, 모의 객체를 사용하면 실제 객체와 달리 정확한 동작을 시뮬레이션하기 어렵습니다. 따라서 모의 객체의 동작이 실제 코드와 일치하지 않을 수 있습니다. 이는 테스트 결과를 왜곡하고 실제 애플리케이션의 동작을 정확하게 반영하지 못하는 원인이 될 수 있습니다.

둘째로, 모의 객체를 오용할 경우 테스트가 실제 애플리케이션의 동작을 반영하지 않을 수 있습니다. 모의 객체를 잘못 구현하면 테스트가 항상 성공하게 되고, 실제 코드에서 발생하는 문제를 감지하지 못할 수 있습니다. 이는 실제 애플리케이션의 버그를 놓치고 잘못된 기능을 배포하는 문제로 이어질 수 있습니다.

셋째로, 테스트 더블을 사용하면 실제 객체와의 상호작용을 테스트하지 않을 수 있습니다. 실제 객체와의 상호작용은 테스트의 일부분인데, 이를 모의 객체로 대체하면 실제 동작이 어떻게 이루어지는지 알 수 없게 됩니다. 이는 모의 객체에 의존하는 코드를 작성하게 되면서 실제 코드와의 호환성 문제를 발생시킬 수 있습니다.

따라서, 테스트 더블을 사용할 때에는 신중하게 사용해야 합니다. 모의 객체를 사용할 때는 실제 코드와의 일치 여부를 확인하고, 실제 객체와의 상호작용을 테스트하는 부분도 포함하여 테스트를 작성해야 합니다. 주의를 기울여 모의 객체를 활용하면 테스트 코드의 유지보수성과 신뢰성을 높일 수 있습니다.

참고문헌: