【问题标题】:groovy map coercion in pythonpython中的groovy映射强制
【发布时间】:2010-02-23 13:40:13
【问题描述】:

我是 python 的新手,我只是想知道是否有一些与 groovy 中可用的地图强制功能等效的功能。

对于上下文,我正在编写一个单元测试并希望使用简单的两个方法接口模拟一个类,在 groovy 中我会执行以下操作:

mock = [apply:{value -> return value*2 }, isValid:{return true}]
testObject.applyMock(mock)

即,mock 可以被视为具有如下类的对象:


class mock:

    def apply(self, value):
        return value *2

    def isValid(self):
        return true

有没有很好的pythonic方法来实现这一点?

干杯 亚历克斯

【问题讨论】:

    标签: python mocking closures


    【解决方案1】:

    使用type()的三参数形式:

    mock = type('mock', (object,), {'apply': (lambda self, value: value * 2),
      'isValid': lambda self: True})
    

    【讨论】:

    • 这似乎成功了,我花了一点时间才意识到调用的结果是一个类型而不是一个实例。因此,为了使用模拟,您需要执行类似 mockObject = mock() 的操作。非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多