-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
单元测试 #1
Comments
should.jsshould.js的基础api大体是和node内置的assert模块的api相同的。断言库的功能也大同小异。只是从api的多样性与易用性来讲,should.js肯定是会强一些。比如,should,js可以像jq一样支持链式调用。 |
mochamocha作为一个测试框架,可以用来组织你的测试代码(就是用assert,should.js写出来的一堆断言)。
|
KarmaKarma是一个将测试代码与浏览器相联接的库。即,他可以把你的测试代码放在真实的浏览器环境中运行。以便检测浏览器的兼容性问题。 |
Travis CITravis CI可以与github仓库绑定。每次在你push代码的时候,Travis CI会拉取你的新代码。通过配置文件,他会在对应的环境中跑你的工程,如果成功运行,会点亮build passing的图标。
具体更复杂的配置查看文档。 Travis CI只做测试其实是大才小用了,他可以做更多的自动化的内容。不过我也没研究啦。 |
前情提要:
本学习笔记会大体介绍一下与单元测试相关的几个库。包括,Node Assert、mocha、should.js、Karma、Travis CI。
其中Node Assert与should.js都是断言库,Node Assert是NodeJs本身具备的断言库,should.js是一个第三方库。在我的理解中,断言库就是判断你的业务代码的结果是否与预期结果相同的库。
Mocha是一个测试框架,测试框架是用来组织你用断言库写出来每一个断言的工具。它提供了一些api,让你可以描述、梳理你的每一个断言。并且会在控制台看到测试的结果。
Karma是一个联结你的测试代码与浏览器的库,具体作用还没搞明白,之后再来补充。
Travis CI是一个帮你自动化处理测试、打包的工具,它与github连接起来,通过一些配置,直接控制你的git仓库。具体的使用,目前没怎么搞懂,之后补充。
Node Assert
通过浏览Node Assert的api,我们可以大体知道一个断言库的构成是怎么样的。下面我就大概梳理一下。
断言结果与预期一致的api
断言结果与预期不一致的api
assert.notDeepEqual与assert.notDeepStrictEqual:通过api的命名,我们就可以看出来这两个api的功能与比较方式,在此不再赘述
assert.notEqual与assert.notStrictEqual:同上
断言异步函数未发生异常的api
断言异步函数发生异常的api
在断言中主动抛出异常的api
assert.fail
assert.ifError
断言给定值为真的api
通过以上的大致梳理,可以看出一个断言库的大体功能为:判断结果与预期是否一致,给定异步函数是否有异常抛出,主动抛出异常,给定值是否为真。而其他的第三方断言库功能会比Node Assert更强大一些,但是核心思想如出一辙。
The text was updated successfully, but these errors were encountered: