[android] 안드로이드 통합 테스트의 테스트 더블(Double)

안드로이드 앱을 개발하다 보면 테스트가 필요한 경우가 많습니다. 안드로이드 앱의 통합 테스트는 실제 디바이스나 시뮬레이터에서 앱의 여러 컴포넌트들이 함께 동작하는 상황을 테스트하는 것을 말합니다. 테스트 더블(Double)은 통합 테스트를 작성할 때 실제 컴포넌트 대신 사용되는 객체로, 실제 컴포넌트와 동일한 인터페이스를 갖고 있습니다.

테스트 더블의 종류

테스트 더블에는 여러 종류가 있지만, 대표적으로 다음과 같은 것들이 있습니다.

  1. 테스트 스텁(Stub) - 특정한 상황에 따른 미리 정의된 단순한 값을 반환하는 더미 객체입니다.
  2. 테스트 스파이(Spy) - 실제 객체의 메서드 호출 여부, 호출 횟수, 호출된 파라미터 등을 기록하는 객체입니다.
  3. 모의 객체(Mock object) - 미리 정의된 예상된 동작을 수신하고, 실제 객체가 소통하는 방식을 시뮬레이션하는 객체입니다.

안드로이드 통합 테스트에서의 활용

안드로이드 통합 테스트에서는 주로 네트워크 통신, 데이터베이스 액세스, 외부 리소스 액세스 등의 작업을 테스트 더블을 사용하여 시뮬레이션합니다. 예를 들어, 네트워크 통신을 테스트할 때 실제 네트워크 호출 대신 테스트 스텁을 사용하여 미리 정의된 응답을 반환하도록 할 수 있습니다.

결론

테스트 더블은 안드로이드 통합 테스트에서 실제 컴포넌트의 동작을 테스트하는 데 도움을 줍니다. 각각의 테스트 더블은 특정한 상황이나 목적에 맞게 사용되며, 효율적인 테스트 작성을 위해 적절히 활용되어야 합니다.

참고 문헌: