2

我对 node.js 相当陌生,并且不了解 assert 模块。这样做的目的是什么?我正在尝试检查某个值是否等于我定义的值,但是当它为假时应用程序崩溃(它说它会崩溃)。使用断言的原因是什么?用 if 语句检查是不是同样的事情,还是不合适?

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

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

对比

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

2 回答 2

3

断言用于测试和显示错误。这是同一件事。

基本上,根据您编写的逻辑,您放入断言中的条件是您(作为程序员)绝对肯定地认为必须为真的东西。除此之外的任何事情都应该是不可能的。

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

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

在您的情况下,您肯定需要if一个断言而不是断言,因为该语句可能false是绝对是您希望不时发生的事情。

有关断言的更多信息:http ://en.wikipedia.org/wiki/Assertion_(computing )

于 2012-07-08T05:30:11.573 回答
2

Assert 语句用于测试,就像在单元测试中一样。测试引擎在 assert 语句失败时捕获特定类型的错误,并为您提供有关失败的信息。编写好的、简单的测试是好的编程的关键。

于 2012-07-08T05:25:31.523 回答