ORM相关对象的单元测试

时间:2013-11-07 15:32:44

标签: unit-testing orm mocking

我正在一个Python项目中工作,我有一些从另一个扩展的类,它们为它们提供了一个“ORM Layer”来以某种方式调用它。当属性发生变化时,这些对象在数据库中是持久的。

当我想测试这些对象的逻辑时出现了一个大问题,它几乎无法模拟所有内容,而且我很疯狂。

是否有任何策略或指令来测试这种情况?感谢。

1 个答案:

答案 0 :(得分:1)

通用策略不是测试数据库或其他框架。假设它们有效。

我不知道使用了哪种持久性/ ORM框架。但是这里的一个好策略是monkey patching:你可以覆盖测试中尝试使用空数据库访问数据库的方法,而不是模拟框架:

def nop(*args, **kw): pass

ORFramework.BaseObject.messThingsUp = nop

其中messThingsUp是您想要摆脱的类BaseObject的方法。