我在一个 Python 项目中工作,我有一些从另一个扩展而来的类,这些类为它们提供了一个“ORM 层”来以某种方式调用它。当它们的属性发生变化时,这些对象在数据库中是持久的。
当我想测试这些对象的逻辑时,最大的问题就来了,模拟一切几乎是不可能的,我快疯了。
是否有任何策略或指令来测试这种情况?谢谢。
我在一个 Python 项目中工作,我有一些从另一个扩展而来的类,这些类为它们提供了一个“ORM 层”来以某种方式调用它。当它们的属性发生变化时,这些对象在数据库中是持久的。
当我想测试这些对象的逻辑时,最大的问题就来了,模拟一切几乎是不可能的,我快疯了。
是否有任何策略或指令来测试这种情况?谢谢。
通用策略是不测试数据库或其他框架。假设他们工作。
我不知道使用的是哪个持久性/ORM 框架。但是这里的一个好策略是猴子补丁:不是模拟框架,而是覆盖测试中尝试用空的方法访问数据库的方法:
def nop(*args, **kw): pass
ORFramework.BaseObject.messThingsUp = nop
wheremessThingsUp
是BaseObject
您要摆脱的类的方法。