3

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

当我想测试这些对象的逻辑时,最大的问题就来了,模拟一切几乎是不可能的,我快疯了。

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

4

1 回答 1

1

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

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

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

ORFramework.BaseObject.messThingsUp = nop

wheremessThingsUpBaseObject您要摆脱的类的方法。

于 2013-11-07T15:59:21.947 回答