2012-07-08 103 views
2

我对node.js相当陌生,并且不理解assert模块。这样做的目的是什么?我试图检查一个特定的值是否等于我定义的值,但是应用程序崩溃(它会说)它是假的。人们会使用断言的原因是什么?用if语句检查相同的东西还是这不正确?如果断言失败,请继续执行脚本

基本上我使用zombie.js来获取输入表单的值。

assert.equal(browser.field('name').value, 'Mike'); 

VS

if(browser.field('name').value == 'Mike'){ 
    //continue 
    } 
+0

你读过[上断言维基百科的解释(http://en.wikipedia.org/wiki/Assertion_(计算))? – DCoder 2012-07-08 05:25:14

+0

@DCoder我明白了,所以只用它你认为它应该永远是真的? – 2012-07-08 05:27:49

回答

2

断言是用于测试和表面bug的。这是一样的事情。

基本上,根据您编程的逻辑,您置入assert的条件是您相信的东西(作为程序员)绝对肯定必须是真实的。除此之外的任何事情都是不可能的。

如果一个断言触发,它表明某种事情已经发生,让事情处于一个程序员认为不可能的状态。因此,正确的做法是停止执行。

所以断言通常不应该用于正常的程序流程(包括错误检查)。他们应该只用于“哇,嘿,这应该是不可能的”的事情。

对于您的情况,您绝对需要if而不是一个断言,因为声明可能是false的可能性绝对是您期望随时发生的事情。关于断言

更多信息:http://en.wikipedia.org/wiki/Assertion_(computing

+0

感谢您的真棒解释,必须感谢!我现在明白了。 – 2012-07-08 05:57:09

2

断言语句被用于测试,如在单元测试。测试引擎在失败时捕获assert语句抛出的特定类型的错误,并为您提供有关失败的信息。编写好的简单测试是良好编程的关键。

+0

感谢您的回复,感谢! – 2012-07-08 10:00:03