2013-07-29 28 views
2

所以我试图配置摩卡作为我正在工作的一个JavaScript项目的测试框架,我碰到了奇怪的事实,你使用单独断言框架。 Mocha's documentation on assertions指出它设计用于任何断言框架,这是一个值得称赞的目标,但它为什么不提供任何内置的断言方法?我只想努力想到任何你想要测试框架的用例,但是没有办法通过或者不通过测试。为什么不摩卡有一个内置的断言定义

回答

4

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

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

因为它不想规定你使用的是什么类型的断言框架。有些人喜欢QUnit断言风格,而另一些人喜欢更多像茉莉花这样的BDD风格。

+0

是的,这是令人钦佩的,但为什么默认没有断言框架呢?谁更喜欢没有断言机制? – Ceilingfish

+0

你必须问摩卡团队为什么没有默认。但他们的总体目标不是指定你如何做事,而是让你去做。 –

2

节点标准库包括一个assert module。如果你喜欢,可以使用另一个断言库;但是,对于许多使用情况,标准assert就足够了。

相关问题