断言在JavaScript中是什么意思?
我见过这样的情况:
assert(function1() && function2() && function3(), "some text");
并且想知道assert()方法做什么。
断言在JavaScript中是什么意思?
我见过这样的情况:
assert(function1() && function2() && function3(), "some text");
并且想知道assert()方法做什么。
当前回答
检查:http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-quick-and-easy-javascript-testing-with-assert/
它是用来测试JavaScript的。令人惊讶的是,这段代码只有五六行,在测试时提供了强大的功能和对代码的控制。
assert函数接受两个形参:
outcome:一个布尔值,它引用您的测试是通过还是失败
描述:测试的简短描述。
assert函数然后简单地创建一个列表项,应用一个“pass”或“fail”的类(取决于您的测试返回的是真还是假),然后将描述追加到列表项。最后,该编码块被添加到页面中。这是疯狂的简单,但工作完美。
其他回答
单词或函数“assert”主要用于应用程序的测试部分。
断言函数是指示程序检查条件(也称为“断言”)的一种简短方式,如果条件不为True,它将抛出错误。
让我们看看它在"普通代码"中是怎样的
If (typeof "string" === "array") { 抛出错误('错误:"string" !== "array"'); }
使用assert你可以简单地写:
Assert (typeof "string" === "array")
在Javascript中,没有本地断言函数,所以你必须使用某个库中的断言函数。
简单介绍,可以查看这篇文章:
http://fredkschott.com/post/2014/05/nodejs-testing-essentials/
我希望这能有所帮助。
assert()是JavaScript中的assert函数。断言的主要思想是找出错误发生的原因/位置。
Node.js有一个assert函数,你可以导入:
Const assert = require('assert')
正如人们所期望的那样,assert(false)抛出一个错误,assert(false, message)抛出一个带有消息的错误。
其他答案已经指出JS本身没有本机断言函数,在撰写本文(2021年4月)时仍然如此。
检查:http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-quick-and-easy-javascript-testing-with-assert/
它是用来测试JavaScript的。令人惊讶的是,这段代码只有五六行,在测试时提供了强大的功能和对代码的控制。
assert函数接受两个形参:
outcome:一个布尔值,它引用您的测试是通过还是失败
描述:测试的简短描述。
assert函数然后简单地创建一个列表项,应用一个“pass”或“fail”的类(取决于您的测试返回的是真还是假),然后将描述追加到列表项。最后,该编码块被添加到页面中。这是疯狂的简单,但工作完美。
JavaScript本身没有标准的断言。也许你使用的库提供了这样的功能;例如,如果你在使用Node.js,也许你在使用断言模块。(提供实现控制台API的控制台的浏览器和其他环境提供console.assert。)
assert函数的通常含义是,如果传入函数的表达式为false,则抛出一个错误;这是断言检查一般概念的一部分。通常断言(正如它们所称)只在“测试”或“调试”构建中使用,并从生产代码中剥离出来。
假设有一个函数总是接受字符串。你会想知道是否有人用不是字符串的东西(没有像TypeScript或Flow这样的类型检查层)调用了这个函数。你可能会这样做:
assert(typeof argumentName === "string");
...如果条件为假,assert将抛出错误。
一个非常简单的版本是这样的:
function assert(condition, message) {
if (!condition) {
throw message || "Assertion failed";
}
}
更好的是,利用Error对象,它具有收集堆栈跟踪的优点,例如:
function assert(condition, message) {
if (!condition) {
throw new Error(message || "Assertion failed");
}
}