기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
FAQ
다른 서비스를 호출하지 않고 계산을 수행하고 결과를 반환하는 Lambda 함수가 있습니다. 정말 클라우드에서 테스트해야 하나요?
예. Lambda 함수에는 테스트 결과를 변경할 수 있는 구성 파라미터가 있습니다. 모든 Lambda 함수 코드는 타임아웃 및 메모리 설정에 종속되므로 해당 설정이 제대로 지정되지 않으면 함수가 실패할 수 있습니다. 또한 Lambda 정책은 Amazon CloudWatch
클라우드에서 테스트가 단위 테스트에 어떻게 도움이 될 수 있나요? 클라우드에 있고 다른 리소스에 연결되면 통합 테스트가 아닌가요?
단위 테스트는 아키텍처 구성 요소에 대해 단독으로 작동하는 테스트라고 정의합니다. 이 정의가 반드시 서비스 호출 또는 기타 네트워크 통신의 사용을 배제하는 것은 아닙니다.
많은 서버리스 애플리케이션에는 클라우드에서도 단독으로 테스트할 수 있는 아키텍처 구성 요소가 있습니다. 기본 예는 입력을 받아 해석하고 SQS 대기열로 메시지를 보내는 Lambda 함수입니다. 해당 함수의 단위 테스트는 입력 값이 대기열에 있는 메시지에 특정 값을 표시하는지 여부를 테스트할 수 있습니다. Arrange, Act, Assert 패턴을 사용하여 작성된 테스트를 고려하세요.
-
Arrange: 리소스(메시지 수신을 위한 대기열 및 테스트 중인 함수)를 할당합니다.
-
Act: 테스트 중인 함수를 호출합니다.
-
Assert: 함수에서 보낸 메시지를 검색하고 출력을 검증합니다.
모의 테스트 접근 방식에는 처리 중인 모의 객체로 대기열을 모의하고 Lambda 함수 코드가 포함된 클래스 또는 모듈의 처리 중인 인스턴스를 생성하는 것이 포함됩니다. Assert 단계에서는 대기열에 있는 메시지가 모의 객체에서 검색됩니다.
클라우드 기반 접근 방식에서는 테스트를 위해 SQS 대기열을 생성하고 격리된 SQS 대기열을 출력 대상으로 사용하도록 구성된 환경 변수와 함께 Lambda 함수를 배포합니다. Lambda 함수를 실행한 후 테스트는 SQS 대기열에서 메시지를 검색합니다.
클라우드 기반 테스트는 동일한 코드를 실행하고, 동일한 동작을 어설션하고, 애플리케이션의 기능적 정확성을 검증합니다. 그러나 Lambda 함수의 설정, 즉 IAM 역할, IAM 정책, 함수의 제한 시간 및 메모리 설정을 검증할 수 있다는 추가적인 이점이 있습니다.