Skip to content

测试的语法的规则是,首先你调用expect函数,为它传递一个你想要做断言的对象,然后你在后面链式添加一个指定的测试。下面是一个简单的例子:

expect(4 + 5).equal(9)

这是最基本的语法,在这个例子中我们期望4和5相加等于9.这并不是一个好测试,因为4和5会在函数被调用之前就被Node.js相加起来,因此我们在这里实际上只是测试了我们的数学技巧,但是通过这个例子我们可以看到Chai语法的一些基本思想。 另一个你需要注意的地方是,以上的语法并不易读,如果和英文句子的格式相比的话。基于这一点,Chai添加了下面的链式getter,它们不会做任何事,但是你可以将它们添加进入断言中是的句子变得啰嗦但是增加了易读性。链式getter的列表如下所示:

  • to
  • be
  • been
  • is
  • that
  • and
  • have
  • with
  • at
  • of
  • same
  • a
  • an

使用上面的链式getter 我们重写了前面提到的测试:

expect(4 + 5).to.be.equal(9)

Mocha

Mocha是一个任务运行器,因此实际上它并不会太关心测试本身,它关心的只是测试的结构,测试结构决定着怎样让测试知道代码运行失败了以及怎样显示结果。你创建代码的方式,就是使用多个describe块来显示你的库中的不同组件,然后在其中添加it块来制定一个特别的测试

来看个例子,假设我们现在有一个JSON类,该类有一个函数来解析JSON,同时我们想要确保这个解析函数能够检测到一个格式有错误的JSON字符串,我们可以如下组织代码:

js
describe('测试JSON类', () => {
  describe('JSON.parse()', () => {
    it('检测不对的字符串', () => {
      // todo
    })
  })
})

我们现在已经准备好开始编写我们的第一个库了,我们先从一个非常简单的同步模块开始,目的是让我们更加熟悉这个系统。我们的app将会需要接受命令行参数来进行设置像是需要搜索多少层级的文件以及测试本身。

为了解决上面的问题,我们将要创建一个模块来接受命令行字符串并解析出其中选项包含的值。

Tag模块

共 20 个模块,1301 篇 Markdown 文档。