Python AWS Lambda 단위 테스트
3081 단어 lambdaunittestingstubberaws
단위 테스트 컴퓨팅 AWS Lambda
이벤트에서 두 값을 검색하고 합계를 반환하는 람다 처리기를 고려하십시오. (다른 AWS 서비스와 상호 작용하지 않음).
index.py
def lambda_handler(event, context):
result = int(event['first_number']) + int(event['second_number'])
return {
'sum' : result
}
다음은 Python "unittest"를 사용한 단위 테스트 옵션 중 하나입니다.
test_index.py
import unittest
import index
class TestSumOfTwoNumbers(unittest.TestCase):
def test_sum(self):
input = {
"first_number": "1",
"second_number": "2"
}
output = index.lambda_handler(input,{})
self.assertEqual(3, output['sum'])
다른 AWS 서비스/API와 상호 작용하는 단위 테스트 AWS Lambda
람다 함수 메타데이터를 가져오는 AWS 서비스 API(boto3 람다 클라이언트의 get_function())를 호출하는 핸들러 코드는 아래에 나와 있습니다.
index.py
import boto3
def lambda_handler(event, context):
lambda_client = boto3.client('lambda')
response = lambda_client.get_function(
FunctionName='for-blog'
)
return response
test_index.py
아래 코드는 Stubber를 사용하여 단위 테스트 boto3 호출을 수행한 방법을 보여줍니다. (간단한 설명은 인라인 주석을 통해 이동)
import boto3
from botocore.stub import Stubber
import index # source file
import unittest
from unittest.mock import patch
class TestLambdaMetadata(unittest.TestCase):
def tests_Metadata_for_lambda_function(self):
client = boto3.client('lambda')
stubber = Stubber(client) # stubbed lambda client
# expected response from boto3 lambda client's get_function call
expected_response = {u"Configuration": {"FunctionName": "for-blog", "Runtime": "python3.8"}}
# stubbed lambda client (with specific parameter) call to get_function results in expected_response.
stubber.add_response('get_function', expected_response, {'FunctionName': 'for-blog'})
# patching boto3 attribute of index.py with stubber
with patch('index.boto3') as mock_boto3:
with stubber:
mock_boto3.client.return_value = client
# call to lambda_handler in index.py
lambda_response = index.lambda_handler({}, 'context')
self.assertEqual(lambda_response, expected_response)
Gerd Altmann에서 Pixabay의 이미지
Reference
이 문제에 관하여(Python AWS Lambda 단위 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/prabusah_53/aws-lambda-unit-testing-2986
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
def lambda_handler(event, context):
result = int(event['first_number']) + int(event['second_number'])
return {
'sum' : result
}
import unittest
import index
class TestSumOfTwoNumbers(unittest.TestCase):
def test_sum(self):
input = {
"first_number": "1",
"second_number": "2"
}
output = index.lambda_handler(input,{})
self.assertEqual(3, output['sum'])
다른 AWS 서비스/API와 상호 작용하는 단위 테스트 AWS Lambda
람다 함수 메타데이터를 가져오는 AWS 서비스 API(boto3 람다 클라이언트의 get_function())를 호출하는 핸들러 코드는 아래에 나와 있습니다.
index.py
import boto3
def lambda_handler(event, context):
lambda_client = boto3.client('lambda')
response = lambda_client.get_function(
FunctionName='for-blog'
)
return response
test_index.py
아래 코드는 Stubber를 사용하여 단위 테스트 boto3 호출을 수행한 방법을 보여줍니다. (간단한 설명은 인라인 주석을 통해 이동)
import boto3
from botocore.stub import Stubber
import index # source file
import unittest
from unittest.mock import patch
class TestLambdaMetadata(unittest.TestCase):
def tests_Metadata_for_lambda_function(self):
client = boto3.client('lambda')
stubber = Stubber(client) # stubbed lambda client
# expected response from boto3 lambda client's get_function call
expected_response = {u"Configuration": {"FunctionName": "for-blog", "Runtime": "python3.8"}}
# stubbed lambda client (with specific parameter) call to get_function results in expected_response.
stubber.add_response('get_function', expected_response, {'FunctionName': 'for-blog'})
# patching boto3 attribute of index.py with stubber
with patch('index.boto3') as mock_boto3:
with stubber:
mock_boto3.client.return_value = client
# call to lambda_handler in index.py
lambda_response = index.lambda_handler({}, 'context')
self.assertEqual(lambda_response, expected_response)
Gerd Altmann에서 Pixabay의 이미지
Reference
이 문제에 관하여(Python AWS Lambda 단위 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/prabusah_53/aws-lambda-unit-testing-2986
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import boto3
def lambda_handler(event, context):
lambda_client = boto3.client('lambda')
response = lambda_client.get_function(
FunctionName='for-blog'
)
return response
아래 코드는 Stubber를 사용하여 단위 테스트 boto3 호출을 수행한 방법을 보여줍니다. (간단한 설명은 인라인 주석을 통해 이동)
import boto3
from botocore.stub import Stubber
import index # source file
import unittest
from unittest.mock import patch
class TestLambdaMetadata(unittest.TestCase):
def tests_Metadata_for_lambda_function(self):
client = boto3.client('lambda')
stubber = Stubber(client) # stubbed lambda client
# expected response from boto3 lambda client's get_function call
expected_response = {u"Configuration": {"FunctionName": "for-blog", "Runtime": "python3.8"}}
# stubbed lambda client (with specific parameter) call to get_function results in expected_response.
stubber.add_response('get_function', expected_response, {'FunctionName': 'for-blog'})
# patching boto3 attribute of index.py with stubber
with patch('index.boto3') as mock_boto3:
with stubber:
mock_boto3.client.return_value = client
# call to lambda_handler in index.py
lambda_response = index.lambda_handler({}, 'context')
self.assertEqual(lambda_response, expected_response)
Gerd Altmann에서 Pixabay의 이미지
Reference
이 문제에 관하여(Python AWS Lambda 단위 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/prabusah_53/aws-lambda-unit-testing-2986텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)