有人可以告诉我如何为使用nose创建的sqlalchemy模型编写单元测试。
我只需要一个简单的例子。
感谢。
答案 0 :(得分:37)
您可以简单地创建一个内存中的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()
# ...
答案 1 :(得分:2)
查看fixture项目。我们使用nose来测试它,它也是一种声明性地定义要测试的数据的方法,会有一些广泛的例子供你在那里使用!