[英]How to mock AWS DynamoDB service?
My service uses AWS DynamoDB as dependency.我的服务使用 AWS DynamoDB 作为依赖项。 I want to write unit tests, but I don't know how to mock the DynamoDB service.我想编写单元测试,但我不知道如何模拟 DynamoDB 服务。 Could anybody help me with that?有人可以帮我吗?
You can use moto python library to mock aws dynamodb,您可以使用 moto python 库来模拟 aws dynamodb,
https://github.com/spulec/moto https://github.com/splec/moto
moto uses a simple system based upon python decorators, describing the AWS services. moto 使用一个基于 python 装饰器的简单系统来描述 AWS 服务。 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")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.