uvu
v0.5.6
async
/ await
测试 $ npm install --save-dev uvu
查看
/examples
以获取工作演示列表!
// tests/demo.js
import { test } from 'uvu' ;
import * as assert from 'uvu/assert' ;
test ( 'Math.sqrt()' , ( ) => {
assert . is ( Math . sqrt ( 4 ) , 2 ) ;
assert . is ( Math . sqrt ( 144 ) , 12 ) ;
assert . is ( Math . sqrt ( 2 ) , Math . SQRT2 ) ;
} ) ;
test ( 'JSON' , ( ) => {
const input = {
foo : 'hello' ,
bar : 'world'
} ;
const output = JSON . stringify ( input ) ;
assert . snapshot ( output , `{"foo":"hello","bar":"world"}` ) ;
assert . equal ( JSON . parse ( output ) , input , 'matches original' ) ;
} ) ;
test . run ( ) ;
然后执行这个测试文件:
# via `uvu` cli, for all `/tests/**` files
$ uvu -r esm tests
# via `node` directly, for file isolation
$ node -r esm tests/demo.js
注意:
-r esm
适用于旧版 Node.js 版本。了解更多
查看
uvu
CLI 文档
uvu/assert
模块是完全可选的。
事实上,您可以使用任何断言库,包括 Node 的本机assert
模块!这是可行的,因为uvu
依赖抛出的错误来检测故障。隐含地,这也意味着任何未捕获的异常和/或未处理的Promise
拒绝都将导致失败,这正是您想要的!
uvu
查看
uvu
API文档
您将从中导入test
或suite
方法的主条目。
uvu/assert
查看
uvu/assert
API文档
在测试中使用的断言方法的集合。请注意:
通过 Node v10.21.0 的
/bench
目录
下面您将发现每个测试运行程序都有两个计时值:
took ___
值是总的进程执行时间——从启动到终止(___)
) 是自我报告的执行时间(如果已知)每个测试运行程序的stdout
都会打印到控制台以验证所有断言是否通过。
为了简洁起见,下面排除了所述输出。
~> "ava" took 594ms ( ??? )
~> "jest" took 962ms (356 ms)
~> "mocha" took 209ms ( 4 ms)
~> "tape" took 122ms ( ??? )
~> "uvu" took 72ms ( 1.3ms)
麻省理工学院©卢克·爱德华兹