关于promise 的测试用例编写
来源:互联网 发布:轩辕网络钥匙扣 编辑:程序博客网 时间:2024/04/29 23:47
前言
Promise
的状态转化,并不是难以理解的概念。但是,在写测试用例的时候,可能会掉进坑里。此处为个人记录。
代码解析
var should = require('should');describe('promise assert', function () { it('normal assert', function (done) { var first = Promise.resolve('A'); first.then(function(value) { value.should.equal('A'); done(): }) }); it('timeout assert', function (done) { var first = Promise.resolve('A'); first.then(function(value) { value.should.equal('AB'); done(); }) });});
上述为最开始写的测试用例,理所当然的以为第一个pass
,第二个fail
。结果是第一个pass
,第二个timeout error
。由于暂时性短路,没有发现问题所在,后在repo询问后得知结果。
每一个断言,失败后会throw error
,不会继续往下执行,然后then
方法会返回一个rejected promise
,因而done
方法不会被调用,所以会出现timeout error
。
询问之后,mocha
最新版本已经支持基于promise
的断言,而不再依赖done
回调函数。代码修改如下:
var should = require('should');describe('promise assert', function () { it('normal assert', function () { var first = Promise.resolve('A'); return first.then(function(value) { value.should.equal('A'); }) }); it('timeout assert', function () { var first = Promise.resolve('A'); return first.then(function(value) { value.should.equal('AB'); }) });});
此时,断言结果如预期。
联系方式
QQ:491229492
https://github.com/bornkiller
0 0
- 关于promise 的测试用例编写
- 关于测试用例编写的一点想法
- 关于Promise的总结
- 测试用例的编写
- 测试用例的编写
- 测试用例的编写
- 测试用例的编写
- 测试用例的编写
- 关于std::promise的set_value_at_thread_exit
- 关于Promise.then()的思考
- 关于测试用例编写的6点经验和建议
- 关于编写软件测试用例之我见
- 关于软件编写的规范测试
- 关于编写有效测试用例的思考和方法- 第一篇 优秀测试用例标准
- 编写测试用例
- 测试用例编写
- 编写测试用例
- 测试用例编写
- wc命令 grep 命令
- C++ 容器及选用总结
- mongodb学习总结
- 支持IE678的canvas
- Java基础知识
- 关于promise 的测试用例编写
- UML9种图之类图和对象图的组成
- 程序设计的准则
- 发生在升级OS X Yosemite后:修复各种开发环境
- 孙志刚:程序员必修的中文MOOC汇总
- extjs4 desktop 实现仿win7效果的桌面窗口预览效果
- 使用FormData对象提交表单及上传图片
- delphi xe 之路(28)Android SDK API 层次结构
- bad class file magic (cafebabe) or version (0034.0000)