python - 为什么夹具引用无法访问它在单元测试中创建的表?
问题描述
所以我试图创建一个 dynamodb 表来使用 pytest 夹具运行我的测试,如下所示:
@pytest.fixture
def db_resource():
db_resource = boto3.resource('dynamodb')
table = db_resource.create_table(
...
return db_resource
然后我像这样将它传递到我的测试中:
@mock_dynamodb2
def test_my_code(db_resource):
other_func(db_resource)
这会引发一个错误,提示我刚刚创建的表不存在(这是我第一次尝试这样做)。但是,如果我将其更改为生成表的函数,它可以正常工作。
@mock_dynamodb2
def _create_table():
db_resource = boto3.resource('dynamodb')
table = db_resource.create_table(
...
return db_resource
并在我的单元测试函数中调用它......
@mock_dynamodb2
def test_my_code():
db_resource = _create_table()
other_func(db_resource)
这工作正常。我错过了什么?
解决方案
推荐阅读
- python - 无法使用 scikit-learn 在 Flask 中加载模型
- python - Twitch Viewer 机器人脚本中的 Python 线程错误
- java - Java 11 功能流在方法调用上推断错误类型
- mysql - 带有 JOIN 的 SQL 返回所有组合而不是相应的匹配项
- rest - 在 REST API 的 Swagger 定义中实现分页
- json - django 检索对象,空值
- javascript - 当用户在 ReactJS 中单击删除时如何删除视频预览
- android - 应用程序图标:为什么我会收到来自 Lint 的“图标大小不正确”警告?
- python - Python 和 pymysql - 无法通过 MySQL 执行系统命令
- jquery - 在表中添加数组数据,在 laravel 中的数据库中仅插入单行