标签: test-fixture

编程中有什么固定装置?

我之前听过很多次这个术语(谈论编程时),但是找不到任何解释是什么意思.有什么好的文章或解释吗?我没有找到任何值得一提的东西.

ui-testing fixtures uitest test-fixture

160
推荐指数
4
解决办法
4万
查看次数

如何为 FastAPI 应用程序编写 SQLAlchemy 测试装置

我正在编写一个使用 SQLAlchemy 数据库的FastAPI应用程序。我已经从 FastAPI 文档中复制了示例,为了简洁起见,简化了数据库模式。完整的来源在这篇文章的底部。

这有效。我可以uvicorn sql_app.main:app通过 Swagger 文档运行它并与数据库交互。当它运行时,它会test.db在工作目录中创建一个。

现在我想添加一个单元测试。像这样的东西。

from fastapi import status
from fastapi.testclient import TestClient
from pytest import fixture

from main import app


@fixture
def client() -> TestClient:
    return TestClient(app)


def test_fast_sql(client: TestClient):
    response = client.get("/users/")
    assert response.status_code == status.HTTP_200_OK
    assert response.json() == []
Run Code Online (Sandbox Code Playgroud)

使用下面的源代码,这将test.db工作目录中的 用作数据库。相反,我想为在测试结束时删除的每个单元测试创​​建一个新数据库。

我可以将全局database.enginedatabase.SessionLocal在运行时创建的对象内,像这样:

    class UserDatabase:
        def __init__(self, directory: Path):
            directory.mkdir(exist_ok=True, parents=True)
            sqlalchemy_database_url = f"sqlite:///{directory}/store.db"
            self.engine = create_engine( …
Run Code Online (Sandbox Code Playgroud)

sqlalchemy test-fixture fastapi

9
推荐指数
1
解决办法
4401
查看次数

pytest - 如何在特定测试后执行函数

我在几个班级组织了一些测试。我已经有一个范围=类的测试装置,以便它可以在测试套件(类)之前运行。但是,我需要在一些特定测试后执行一个函数。假设我在一个类中有 100 个测试,我已经有一个固定装置可以在这些测试之前执行一个函数,但我还想在 2-3 个测试之后运行一个函数。

实现这一目标的最佳方法是什么?可以用固定装置或其他东西来完成吗?

python testing fixtures pytest test-fixture

7
推荐指数
1
解决办法
4786
查看次数