做语言链'摩卡的方法实际上做了什么?

时间:2017-07-24 17:36:24

标签: mocha

似乎有像' .to',' .be'等方法。和' .is'在摩卡中,除了可读性之外没有任何其他真正的目的,并且它们被构建为对计算机基本上是不可见的。这是正确的,可以省略吗?

1 个答案:

答案 0 :(得分:1)

感谢有趣的问题!

简而言之,您的问题的答案是是的,可以省略,您的断言将具有相同的含义。

例如,所有这些都应该通过:

expect({"ok":"hello"}).is.not.undefined;
expect({"ok":"hello"}).to.not.undefined;
expect({"ok":"hello"}).be.not.undefined;
expect({"ok":"hello"}).be.is.to.be.not.undefined;
expect({"ok":"hello"}).to.to.to.to.to.not.to.to.to.to.undefined;
expect({"ok":"hello"}).not.undefined;

我很好奇这些功能是如何实现的,因为我使用的是WebStorm,我只需按住Ctrl +点击其中一种方法即可跳转到它的源码(即使我使用的是mocha跳转到文件中名为 unit.js 。源的空白被压缩,但在复制/粘贴到一个新的js文件并执行ctrl + alt + L重新格式化代码后非常好并且易​​于阅读下面我列出了你特别询问的三个功能的实现。

get to() {
      return this
    }

get be() {
      return h.call(this, this.equal)
    }

get is() {
      return h.call(this, this.equal)
    }

我希望有所帮助!