Unit testing 模拟小马ORM实体
我正在尝试测试这样一个函数:Unit testing 模拟小马ORM实体,unit-testing,ponyorm,Unit Testing,Ponyorm,我正在尝试测试这样一个函数: def whatever(): return select(t for t in Team for p in t.Players if p.Age > 18) 测试: 但我得到了一个错误: TypeError:无法迭代非实体对象 关于如何创建一个伪实体并测试函数有什么想法吗?为了克服这个错误,团队和参与者不应该是类,而应该是一些模型类的实例,使用返回空迭代器的u_
def whatever():
return select(t for t in Team
for p in t.Players
if p.Age > 18)
测试:
但我得到了一个错误:
TypeError:无法迭代非实体对象
关于如何创建一个伪实体并测试函数有什么想法吗?为了克服这个错误,团队和参与者不应该是类,而应该是一些模型类的实例,使用返回空迭代器的u_iter_u____方法。simples实现如下所示:
class Mockup(object):
def __iter__(self):
return iter([])
Team = Mockup()
Person = Mockup()
然后,您需要提供返回所需结果的select函数的实体模型实现
在PonyORM本身中,像Team和Person这样的实体类有一个元类EntityMeta,它为类定义了_iter_____方法
class Mockup(object):
def __iter__(self):
return iter([])
Team = Mockup()
Person = Mockup()