因此,我使用名为deride的库来存储并强制执行错误以进行测试,这与冻结对象非常相似。但是,我需要在包装对象上调用一个方法,但在其中调用另一个方法,我需要该方法作为存根调用。
所以我并不期望人们熟悉deride,但问题是:如果不修改原始方法,包装函数greet
是否可以调用包裹的{{} 1}}功能而不是原始的?
可以通过设置绑定上下文来实现吗?
salutation
答案 0 :(得分:0)
很抱歉,但是我没有办法在不违反Person的不变性的情况下做到这一点。
Deride在包装时与Object.freeze很好地配合,而不是修改对象,因此对salutation()的内部引用将始终是对象的冻结实例,而不是您的存根,包装方法。
最终如果你把salutation()的责任从这个类中带出来并进入一个注入的单独的类中,代码将变得更加可测试,因为你可以在Object.freeze之前覆盖依赖项