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()