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