mocha 的基本用法 & istanbul 生成测试覆盖率报告 & mockjs 模拟网络请求

参考阮神的文章:http://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html 

补充:

cnpm i mocha -g --save-dev

cnpm i chai --save-dev //这个是可选的断言库,也可以用should

cnpm i mochawesome --save-dev //这个是mocha以外的一个报告格式库,也是可选的

[这里cnpm 也可以用yarn,总之是比npm 工具好用]

配置好了,直接在根目录下运行:mocha 就可以,最简单的:mocha xx.test.js

生成报告:mocha --reporter mochawesome .... 简单的:mocha xx.test.js --reporter mochawesome    报告在:根目录下的mochaawesome-reports/mochawesome.html

还可以统一的将命令都集中在package.json 的scripts中:参考:http://www.ruanyifeng.com/blog/2016/10/npm_scripts.html

覆盖率:

参考:http://www.ruanyifeng.com/blog/2015/06/istanbul.html

cnpm i istanbul -g --save-dev

istanbul cover _mocha xx.test.js

报告在:根目录下的coverage/icov-report/index.html

网络数据请求模拟:ajax fetch 都要求请求http 或https 协议。所以为了便捷我采用了python 快速的开启一个服务:

python -m SimpleHTTPServer

<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
  <script src="http://mockjs.com/dist/mock.js"></script>
  <script>
    Mock.mock('http://localhost:8000/test', {
      'result|5': [{
        'id|+1': 1,
        'email': '@EMAIL',
        'name': '@STRING',
        'fname': '@name()',
        'age|1-100': 100,
        'color': '@color'
      }]
    });

    ////////////////////////
  
    $.ajax({
      url: 'http://localhost:8000/test',
      dataType: 'json',
      success: function (data, status, jqXHR) {
        console.log(data)
      }
    });

  //目前chrome 55 中下面的代码是有问题的 fetch(
'http://localhost:8000/test',{mode:'no-cors'}) .then(function(response){ console.log(response.json()) //return response.json() }).then(function(data){ console.log(data) }) </script>

 

原文地址:https://www.cnblogs.com/xuezizhenchengxuyuan/p/6373970.html