0
我使用一个库proxyquire,它包装Node的require方法以允许模拟对象注入。的特点之一是,它扩展了原来那么缺少的属性填充在模拟对象可以通过模拟对象上设置属性关闭这个功能称为@noCallThru
像这样:如何在CoffeeScript中分配需要引用的静态类属性?
MockObj =
stubFunc: ->
"@noCallThru": true
proxyquire "path/to/module",
"path/to/mocked_module": MockObj
有些模块是构造函数(类),以便嘲笑他们使用CoffeeScript的类系统。然而,在返回的对象(在这种情况下是类)上检查使用@noCallThru
,并且因为它不是一个实例将不使用原型。 @noCallThru
需要是该类的静态属性。
如何定义需要引用的CoffeeScript类的静态属性?我能找到的最好的办法就是像这样注入strait JavaScript:
class MockClass
stubFunc: ->
`MockClass['@noCallThru'] = true`
有没有更好的方法?
完美!谢谢! – Sukima
'@ ['@ noCallThru'] = true'会更接近通常的'@class_prop = x'。 –
@ muistooshort:谢谢,把它移到答案的第一部分。 –