我之前听过很多次这个术语(谈论编程时),但是找不到任何解释是什么意思.有什么好的文章或解释吗?我没有找到任何值得一提的东西.
我正在编写一个使用 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.engine
和database.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) 我在几个班级组织了一些测试。我已经有一个范围=类的测试装置,以便它可以在测试套件(类)之前运行。但是,我需要在一些特定测试后执行一个函数。假设我在一个类中有 100 个测试,我已经有一个固定装置可以在这些测试之前执行一个函数,但我还想在 2-3 个测试之后运行一个函数。
实现这一目标的最佳方法是什么?可以用固定装置或其他东西来完成吗?
test-fixture ×3
fixtures ×2
fastapi ×1
pytest ×1
python ×1
sqlalchemy ×1
testing ×1
ui-testing ×1
uitest ×1