How to mock AWS DynamoDB service?

前端 未结 1 967
感情败类
感情败类 2021-01-12 12:33

My service uses AWS DynamoDB as dependency. I want to write unit tests, but I don\'t know how to mock the DynamoDB service. Could anybody help me with that?

相关标签:
1条回答
  • 2021-01-12 12:56

    You can use moto python library to mock aws dynamodb,

    https://github.com/spulec/moto

    moto uses a simple system based upon python decorators, describing the AWS services. Here is an example:

    import unittest
    import boto3
    from moto import mock_dynamodb2
    
    class TestDynamo(unittest.TestCase):
    
        def setUp(self):
            pass
    
        @mock_dynamodb2
        def test_recoverBsaleAssociation(self):
            table_name = 'test'
            dynamodb = boto3.resource('dynamodb', 'us-east-1')
    
            table = dynamodb.create_table(
                TableName=table_name,
                KeySchema=[
                    {
                        'AttributeName': 'key',
                        'KeyType': 'HASH'
                    },
                ],
                AttributeDefinitions=[
                    {
                        'AttributeName': 'key',
                        'AttributeType': 'S'
                    },
    
                ],
                ProvisionedThroughput={
                    'ReadCapacityUnits': 5,
                    'WriteCapacityUnits': 5
                }
            )
    
            item = {}
            item['key'] = 'value'
    
            table.put_item(Item=item)
    
            table = dynamodb.Table(table_name)
            response = table.get_item(
                Key={
                    'key': 'value'
                }
            )
            if 'Item' in response:
                item = response['Item']
    
            self.assertTrue("key" in item)
            self.assertEquals(item["key"], "value")
    
    0 讨论(0)
提交回复
热议问题