为了进行隔离测试,在每次测试之前删除并创建表或清理它们会很有趣。使用 SORM 有什么简单的方法吗?
问问题
271 次
2 回答
2
您可以使用close()方法为每个测试创建新实例,并将其initMode
设置为DropAllCreate并释放所有实例的资源。
像下面这样的自定义函数可能对您有帮助:
def withDb ( f : Instance => () ) {
val db = new Instance ( ..., initMode = InitMode.DropAllCreate )
f(db)
db.close()
}
使用它可以很容易地始终在新创建的实例的上下文中工作:
withDb { db =>
db.save(...)
db.query[...](...)
}
于 2012-12-02T12:10:52.513 回答
2
我的解决方案是定义 reload 方法来删除和重新创建表而不重新连接。我的实例定义:
class DatabaseTest extends Instance(...) {
def reload = {
connector.withConnection { connection =>
connection.dropAllTables()
Create.tables(mappings.values).foreach {
t => connection.createTable(t)
}
}
}
}
于 2012-12-03T01:12:50.760 回答