Javascript BDD 测试框架:Jasmine

Jasmine是一款面向Javascript语言的BDD测试框架。BDD是在TDD的基础上衍生出的一种驱动开发方式,被称为行为驱动开发。与传统TDD的思想相比,BDD更侧重对产品需求的描述。BDD模式下的测试代码结构与敏捷开发思想中经常使用的 User Story 结构类似,从而使测试代码与自然语言更加接近,也更加便于非技术人员理解。这种开发模式常应用于程序员与非技术人员共同进行需求分析的场景。BDD的本质仍然是TDD,即通过测试优先的方式为代码的可靠性提供保障。 通过bower可方便的将jasmine加入到项目中: bower install jasmine 测试的入口为 SpecRunner.html,只要将源码和对应的测试引入到该文件中即可运行测试。 Jasmine定义了 describe(), it() 等方法对测试结构进行约定。Jasmine提供了丰富的断言,并且提供 spyOn(), createSpy() 等方法,将mock方法注入待测试的对象中,从而可以方便地对生产代码的行为及结果进行测试。 Jasmine 也提供了十分优秀的文档,文档内容全部由Jasmine样例代码组成,简单明了,开发者可以十分方便地查询所需的测试方法。 article img { width:80%; }…

使用 localStorage 储存本地数据

做数据分析工具的时有一些数据需要存在本地,如在处理数据的过程中,需要把每一步的条件保存起来以便可以进行撤销操作。 通常,数据库和COOKIE是比较常见的储存数据的方式。不过,COOKIE只能保存4k的大小并且把大量垃圾数据加在报头里也不太好。而这种临时有效的数据也不太适合保存在数据库中。和存在数据库中相比,这类数据更适合保存在客户端,浏览器的localStorage正好可以用来完成这项任务。 localStorage对象提供了数据操作的基本方法,最常用的:setItem(), getItem(), removeItem(), clear()。借助这四个方法可以简单的完成对localStorage的操作。 保存数据到localStorage中: var sql = $("#sql").val(); localStorage.setItem('sql'+key,[sql]); 读取,删除localStorage的数据: var sql = localStorage.getItem('sql'+key); localStorage.removeItem('sql'+key); clear() 方法则会清除localStorage中的全部数据。 localStorage在客户端提供了一个简单的本地存储,使很多临时性的数据都可以在前端保存,为Web开发带来了极大的便利。 Mysql数据分析工具 演示站: http://mysqldata.chxj.…

google Charts 本地化部署

之前做过一个数据分析工具,需求之一是要根据统计出的数据生成图表,考虑了Raphael,Bootstrap Chart.js 和google Charts 三个JS库,最终选定google Charts,原因是Raphel学习成本太高而Bootsrap Chart.js的功能上明显无法满足需求.google Charts部署的方式很简单. <script type="text/javascript" src="https://www.google.com/jsapi"></script> 问题来了,google Charts需要通过访问google API导入依赖,但是国内访问谷歌服务器稳定性不敢恭维,于是决定把google Charts直接部署到本地。 Google没有提供直接部署在本地的方案,不过毕竟是JS,可以直接从浏览器中获取。不过需要稍微研究了一下google Charts加载依赖的工作方式。 打开控制台,发现Google Charts首先加载了一个叫googleapi.js的文件 : googleapi.js根据生产代码中需要载入的库,去请求google服务器上对应的库到本地。…