Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1501|回复: 2
打印 上一主题 下一主题

wildduck--测试工具

[复制链接]

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
跳转到指定楼层
楼主
发表于 2017-12-28 18:00:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 java 于 2017-12-29 11:31 编辑

---------browsers-----------------
https://www.npmjs.com/package/browserbox

browserbox  IMAP client for browsers

github.com/whiteout-io/browserbox


------测试框架Mocha---及断言库 chai-----
Mocha(发音"摩卡")诞生于2011年,是现在最流行的JavaScript测试框架之一,在浏览器和Node环境都可以使用。
安装  npm install --global mocha

通常,测试脚本与所要测试的源码脚本同名,但是后缀名为.test.js(表示测试)或者.spec.js(表示规格)。比如,add.js的测试脚本名字就是add.test.js。
// add.test.js
var add = require('./add.js');
var expect = require('chai').expect;

describe('加法函数的测试', function() {
  it('1 加 1 应该等于 2', function() {
    expect(add(1, 1)).to.be.equal(2);
  });
});

上面这段代码,就是测试脚本,它可以独立执行。测试脚本里面应该包括一个或多个describe块,每个describe块应该包括一个或多个it块。
describe块称为"测试套件"(test suite),表示一组相关的测试。它是一个函数,第一个参数是测试套件的名称("加法函数的测试"),第二个参数是一个实际执行的函数。
it块称为"测试用例"(test case),表示一个单独的测试,是测试的最小单位。它也是一个函数,第一个参数是测试用例的名称("1 加 1 应该等于 2"),第二个参数是一个实际执行的函数。

断言库的用法
npm install
--global
chai



上面的测试脚本里面,有一句断言。
expect(add(1, 1)).to.be.equal(2);
所谓"断言",就是判断源码的实际执行结果与预期结果是否一致,如果不一致就抛出一个错误。上面这句断言的意思是,调用add(1, 1),结果应该等于2。

所有的测试用例(it块)都应该含有一句或多句的断言。它是编写测试用例的关键。断言功能由断言库来实现,Mocha本身不带断言库,所以必须先引入断言库。
var expect = require('chai').expect;  //断言库
断言库有很多种,Mocha并不限制使用哪一种。上面代码引入的断言库是chai,并且指定使用它的expect断言风格。

Mocha的基本用法
有了测试脚本以后,就可以用Mocha运行它。
mocha add.test.js
加法函数的测试
    ✓ 1 加 1 应该等于 2
  1 passing (8ms)

http://www.ruanyifeng.com/blog/2 ... al-of-examples.html
http://chaijs.com/
https://github.com/chaijs/chai




回复

使用道具 举报

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
沙发
 楼主| 发表于 2018-1-2 17:22:39 | 只看该作者
本帖最后由 java 于 2018-1-5 08:57 编辑

测试用例跑法
mocha ./imap-core/test/my-test.js  --config=./config/test.toml


sudo提升IDE权限
sudo /usr/share/webstorm/bin/webstorm.sh

回复 支持 反对

使用道具 举报

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
板凳
 楼主| 发表于 2018-1-2 17:53:47 | 只看该作者
手动命令行测试

----imap测试-------
openssl s_client -connect 127.0.0.1:9993

  1. C: C1 CAPABILITY
  2. S: * CAPABILITY IMAP4rev1 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN ENABLE ID SASL-IR
  3. S: C1 OK CAPABILITY completed

  4. C: C3 LOGIN "hcj" "test123"
  5. S: C3 OK hcj authenticated

  6. C: C6 STATUS "Trash" (MESSAGES RECENT UIDVALIDITY)
  7. S: * STATUS "Trash" (MESSAGES 1 RECENT 0 UIDVALIDITY 1514528271)
  8. S: C6 OK STATUS completed

  9. C: C7 NOOP
  10. S: C7 OK Nothing done

  11. C: C10 SELECT "Trash"
  12. S: * FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
  13. S: * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)] Flags permitted
  14. S: * OK [UIDVALIDITY 1514528271] UIDs valid
  15. S: * 1 EXISTS
  16. S: * 0 RECENT
  17. S: * OK [HIGHESTMODSEQ 76] Highest
  18. S: * OK [UIDNEXT 25] Predicted next UID
  19. S: C10 OK [READ-WRITE] SELECT completed

  20. C: C11 FETCH 1:1 (UID)
  21. S: 1 FETCH (UID 24)
  22. S: C11 OK FETCH completed

  23. C: C12 UID FETCH 24 (UID RFC822.SIZE FLAGS BODY.PEEK[HEADER])
  24. S: * 1 FETCH (UID 24 RFC822.SIZE 79 FLAGS () BODY[HEADER] {70}
  25. S: from: sender@example.com
  26. S: to: receiver@example.com
  27. S: subject: test1
  28. S:
  29. S: )
  30. S: C12 OK UID FETCH completed

  31. C: C13 UID FETCH 24 (UID BODY.PEEK[])
  32. S: * 1 FETCH (UID 24 BODY[] {79}
  33. S: from: sender@example.com
  34. S: to: receiver@example.com
  35. S: subject: test1
  36. S:
  37. S: hello 1
  38. S: )
  39. S: C13 OK UID FETCH completed

  40. C: C14 UID FETCH 24 (UID FLAGS)
  41. S: * 1 FETCH (UID 24 FLAGS ())
  42. S: C14 OK UID FETCH completed

  43. C: C15 UID STORE 24 +FLAGS (\Deleted)
  44. S: * 1 FETCH (UID 24 FLAGS (\Deleted))
  45. S: C15 OK UID STORE completed

  46. C: C16 EXPUNGE
  47. S: * 1 EXISTS
  48. S: * 1 EXPUNGE
  49. S: * 0 EXISTS
  50. S: C16 OK EXPUNGE completed

  51. C: C17 CLOSE
  52. S: C17 OK CLOSE completed

  53. C: C18 LIST "" *                 //----- 参数: "邮箱路径名" "邮箱名(可使用通配符)"
  54. S: * LIST (\HasNoChildren) "/" "INBOX"
  55. S: * LIST (\HasNoChildren \Drafts) "/" "Drafts"
  56. S: * LIST (\HasNoChildren \Junk) "/" "Junk"
  57. S: * LIST (\HasNoChildren \Sent) "/" "Sent Mail"
  58. S: * LIST (\HasNoChildren \Trash) "/" "Trash"
  59. S: C18 OK LIST completed

  60. C: C19 LOGOUT
  61. S: * BYE Logout requested
  62. S: C19 OK Piccobello!
  63. S: closed
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-5-2 23:14 , Processed in 0.057089 second(s), 18 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表