为了进行隔离测试,在每次测试之前删除并创建表或清理它们将是很有趣的。有什么简单的方法可以用SORM做到这一点吗?
发布于 2012-12-02 20:10:53
您可以在initMode设置为DropAllCreate的情况下为每个测试创建新实例,然后使用close()方法释放所有实例的资源。
下面这样的自定义函数可能会对您有所帮助:
def withDb ( f : Instance => () ) {
val db = new Instance ( ..., initMode = InitMode.DropAllCreate )
f(db)
db.close()
}使用它可以很容易地始终在新创建的实例的上下文中工作:
withDb { db =>
db.save(...)
db.query[...](...)
}发布于 2012-12-03 09:12:51
我的解决方案是定义reload方法来删除和重新创建表,而不需要重新连接。我的实例定义:
class DatabaseTest extends Instance(...) {
def reload = {
connector.withConnection { connection =>
connection.dropAllTables()
Create.tables(mappings.values).foreach {
t => connection.createTable(t)
}
}
}
}https://stackoverflow.com/questions/13665459
复制相似问题