为什么mocha没有内置的断言定义

时间:2013-07-29 23:18:30

标签: javascript mocha assertions

所以我试图将mocha配置为我正在处理的javascript项目的测试框架,并且我遇到了一个奇怪的事实: 使用单独的断言框架。 Mocha's documentation on assertions声明它设计用于任何断言框架,这是一个值得称赞的目标,但为什么它不提供任何内置的断言方法?我只是很难想到你想要一个测试框架的任何用例,但无法通过或未通过测试。

3 个答案:

答案 0 :(得分:7)

作为Jeff mentioned,Mocha的设计者让用户可以选择使用任何断言库。至于为什么没有默认断言,因为 Mocha不需要它工作。执行以下测试:

var a = 1;
it("test", function () {
    if (a !== 2)
        throw new Error("a should equal 2");
});

你得到了输出:

  1) test

  0 passing (3ms)
  1 failing

  1)  test:
     Error: a should equal 2
     [...]

没有断言库就可以正常工作。

答案 1 :(得分:2)

节点标准库包含assert module。如果你愿意,可以使用另一个断言库;但是,对于许多用例,标准assert就足够了。

答案 2 :(得分:1)

因为它不想决定你使用什么类型的断言框架。有些人喜欢QUnit断言风格,而有些人更喜欢像Jasmine这样的BDD风格。