我们的Mocha测试套件有这一行:
model.getResourceDependencies.should.be.a.Function;
测试代码使用should
库
正如您所看到的,上面的表达式既不是赋值也不是调用,或者是它?
这是如何工作的?是否存在某种基础机制onPropertyRead()
或类似的东西,以便即使没有显式调用函数,should库也可以执行某些操作?
顺便说一句,几乎不可能记住任何应该或chai的API。
答案 0 :(得分:4)
should.js使用 ES5 getter 。 https://github.com/shouldjs/should.js/blob/9.0.2/lib/should.js#L105
柴也使用它。 https://github.com/chaijs/chai/blob/3.5.0/lib/chai/interface/should.js#L35通常,ES5 getter或ES6 Proxy(和Object.prototype.__noSuchMethod__可以使用此类行为 在过去)