python - Pytest-django 依赖注入
问题描述
pytest-django 如何知道是否用 a RequestFactory
orClient
实例注入测试函数?
def test_with_client(client):
response = client.get('/')
assert response.content == 'Foobar'
def test_details(rf):
request = rf.get('/customer/details')
response = my_view(request)
assert response.status_code == 200
换句话说:您如何确保输入夹具是某种类型?
解决方案
pytest 不基于 type 而是基于name注入。输入参数的名称与注册的灯具匹配。
请参阅此处的文档,但简而言之
import pytest
@pytest.fixture
def connection():
return Connection()
def test_my_object(connection):
target = MyObject(connection)
assert ...
您可以使用类型注释来帮助 PyCharm 等推断正确的类型,但 pytest 不使用这些。
推荐阅读
- sql - Microsoft Access 类型转换失败?
- php - 如何在自定义 front-page.php 上处理多个相同的标头?
- r - 如何取特定时间格式的时间序列数据的平均值
- django - 在模板中渲染字典
- java - 在 Spring 中提供 JSON 时如何包含相关对象?
- c# - Azure Function 应用的生命周期是多久?
- stripe-payments - Stripe 无法向没有活动卡的客户收费
- python - 使用 Flask-Marshmallow 和 SQLAlchemy 的空 Json
- node.js - 如何使用来自 axios 的 json 字符串执行操作?
- python - 关于LSTM中样本数量的问题