我需要一个使用nose进行SQLAlchemy模型的Python单元测试示例

24 投票
2 回答
17360 浏览
提问于 2025-04-15 11:26

有人能教我怎么用nose为我创建的sqlalchemy模型写单元测试吗?

我只需要一个简单的例子。

谢谢。

2 个回答

2

你可以看看这个fixture项目。我们用nose这个工具来测试它,nose也是一种可以清晰地定义测试数据的方法,里面会有很多详细的例子供你使用!

另外,你还可以查看fixture的文档

38

你可以很简单地创建一个在内存中的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()
    # ...

撰写回答