断言在JavaScript中是什么意思?

我见过这样的情况:

assert(function1() && function2() && function3(), "some text");

并且想知道assert()方法做什么。


当前回答

Node.js有一个assert函数,你可以导入:

Const assert = require('assert')

正如人们所期望的那样,assert(false)抛出一个错误,assert(false, message)抛出一个带有消息的错误。

其他答案已经指出JS本身没有本机断言函数,在撰写本文(2021年4月)时仍然如此。

其他回答

如果第一个属性为假,断言将抛出错误消息,而第二个属性是要抛出的消息。

console.assert(condition,message);

有很多评论说断言在JavaScript中不存在,但console.assert()是JavaScript中的断言函数 断言的思想是找出错误发生的原因/位置。

console.assert(document.getElementById("title"), "You have no element with ID 'title'");
console.assert(document.getElementById("image"), "You have no element with ID 'image'");

在这里,您可以根据消息找到错误是什么。 这些错误消息将以红色显示到控制台,就像我们调用了console.error();

你可以使用断言来测试你的函数,例如:

console.assert(myAddFunction(5,8)===(5+8),"Failed on 5 and 8");

注意,条件可以是!= < >等

这通常用于通过提供一些测试用例来测试新创建的函数是否按预期工作,而不是用于生产。

要查看控制台中的更多函数,请执行console.log(console);

检查:http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-quick-and-easy-javascript-testing-with-assert/

它是用来测试JavaScript的。令人惊讶的是,这段代码只有五六行,在测试时提供了强大的功能和对代码的控制。

assert函数接受两个形参:

outcome:一个布尔值,它引用您的测试是通过还是失败

描述:测试的简短描述。

assert函数然后简单地创建一个列表项,应用一个“pass”或“fail”的类(取决于您的测试返回的是真还是假),然后将描述追加到列表项。最后,该编码块被添加到页面中。这是疯狂的简单,但工作完美。

如果你使用webpack,你可以只使用node.js断言库。尽管他们声称它“并不是一个通用的断言库”,但它对于特别的断言似乎已经足够了,而且在Node领域似乎没有竞争对手(Chai是为单元测试而设计的)。

const assert = require('assert');
...
assert(jqXHR.status == 201, "create response should be 201");

你需要使用webpack或browserify才能使用它,所以很明显,这只在那些已经在你的工作流中才有用。

正如t.j.所提到的,JavaScript中没有断言。 但是,有一个名为assert的节点模块,主要用于测试。所以,你可能会看到这样的代码:

const assert = require('assert');
assert(5 > 7);

它可能与您的某些代码正在使用的测试库一起提供。这里有一个例子(它可能与你的代码使用的库不同,但它显示了一般的思想):

http://chaijs.com/guide/styles/#assert