【发布时间】:2010-10-24 10:25:00
【问题描述】:
谁能告诉我如何为我使用鼻子创建的 sqlalchemy 模型编写单元测试。
我只需要一个简单的例子。
谢谢。
【问题讨论】:
-
更具体:您在如何设置鼻子方面需要帮助吗?或者如何测试模型?
标签: python unit-testing testing sqlalchemy nose
谁能告诉我如何为我使用鼻子创建的 sqlalchemy 模型编写单元测试。
我只需要一个简单的例子。
谢谢。
【问题讨论】:
标签: python unit-testing testing sqlalchemy nose
您可以简单地创建一个内存中的 SQLite 数据库并将您的会话绑定到该数据库。
例子:
from db import session # probably a contextbound sessionmaker
from db import model
from sqlalchemy import create_engine
def setup():
engine = create_engine('sqlite:///:memory:')
session.configure(bind=engine)
# You probably need to create some tables and
# load some test data, do so here.
# To create tables, you typically do:
model.metadata.create_all(engine)
def teardown():
session.remove()
def test_something():
instances = session.query(model.SomeObj).all()
eq_(0, len(instances))
session.add(model.SomeObj())
session.flush()
# ...
【讨论】:
create_all 才能实际创建表。此外,如果使用 db-vendor 特定的数据类型,则某些 DDL 可能无法运行。
查看fixture 项目。我们使用鼻子来测试它,它也是一种以声明方式定义要测试的数据的方法,那里会有一些广泛的示例供您使用!
【讨论】: