SlideShare a Scribd company logo
1 of 26
苏河
• 界面老是改,测毛线
• 都是业务代码,测毛线
• 项目时间太紧,测毛线
• 测毛线,还是目测给
力……
产品的变化

• RIA
• Base on Browser
• Heavy Javascript
• Html 5
开发量的变化

       Server        Browser




   Server       Browser
前端关注点的变化
 内部质量       外部质量

 可维护性   前   功能
 性能     端
        质   界面
 设计模式
        量
 开发效率
困难重重

       • 浪费太多时间

How?   • 效率太低,意义不大

       • 从没写过javascript的单元测试
Jasmine
• Jasmine是一个BDD的javascript单
         元测试框架
Jasmine
• 语法简单

• 代码易读性

• 不依赖其他js框架

• 敏捷

• Nodejs、ruby、java、html
Specs
Expectations
Suites
Nested Describes
Disabling Tests & Suites
Matchers
Your matchers
Before and After
Spies matchers
•   expect(x).toHaveBeenCalled();
•   expect(x).toHaveBeenCalledWith(arguments);
•   expect(x).not.toHaveBeenCalled();
•   expect(x).not.toHaveBeenCalledWith(argume
    nts);
Spies
•   spyOn(x, 'method').andCallThrough();
•   spyOn(x, 'method').andReturn(arguments);
•   spyOn(x, 'method').andThrow(exception);
•   spyOn(x, 'method').andCallFake(function);
•   spyOn(x, 'method').andReturn(value1); ... ;
    x.method.andReturn(value2);
spies
Asynchronous specs
waits
waitsFor
• waitsFor(function, optional message, optional
  timeout)
爱逛街demo
• 是否有问题?
预告片

• 如何更好的架构可测试代码

• 如何集成到klude测试平台

• ……
QA

More Related Content

What's hot

Nashorn on JDK 8 (ADC2013)
Nashorn on JDK 8 (ADC2013)Nashorn on JDK 8 (ADC2013)
Nashorn on JDK 8 (ADC2013)Kris Mok
 
Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016Kirk Chen
 
Angular 從入門到實戰(三)
Angular 從入門到實戰(三)Angular 從入門到實戰(三)
Angular 從入門到實戰(三)志龍 陳
 
JS and NG - ntut iLab 2015/07/14
JS and NG - ntut iLab 2015/07/14JS and NG - ntut iLab 2015/07/14
JS and NG - ntut iLab 2015/07/14BO Hong LI
 
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型Justin Lin
 
RSpec 讓你愛上寫測試
RSpec 讓你愛上寫測試RSpec 讓你愛上寫測試
RSpec 讓你愛上寫測試Wen-Tien Chang
 

What's hot (7)

Nashorn on JDK 8 (ADC2013)
Nashorn on JDK 8 (ADC2013)Nashorn on JDK 8 (ADC2013)
Nashorn on JDK 8 (ADC2013)
 
Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016
 
Angular 從入門到實戰(三)
Angular 從入門到實戰(三)Angular 從入門到實戰(三)
Angular 從入門到實戰(三)
 
JS and NG - ntut iLab 2015/07/14
JS and NG - ntut iLab 2015/07/14JS and NG - ntut iLab 2015/07/14
JS and NG - ntut iLab 2015/07/14
 
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
 
vmarket in action
vmarket in actionvmarket in action
vmarket in action
 
RSpec 讓你愛上寫測試
RSpec 讓你愛上寫測試RSpec 讓你愛上寫測試
RSpec 讓你愛上寫測試
 

Viewers also liked (19)

July ppt
July pptJuly ppt
July ppt
 
Linuxguide4f2e
Linuxguide4f2eLinuxguide4f2e
Linuxguide4f2e
 
01 haziran11 akplilerin yapacak iyi isleri kalmadi
01 haziran11 akplilerin yapacak iyi isleri kalmadi01 haziran11 akplilerin yapacak iyi isleri kalmadi
01 haziran11 akplilerin yapacak iyi isleri kalmadi
 
Trestle board feb march 2013
Trestle board feb march 2013Trestle board feb march 2013
Trestle board feb march 2013
 
Cardiovascular disease
Cardiovascular diseaseCardiovascular disease
Cardiovascular disease
 
Joycss
JoycssJoycss
Joycss
 
Dolmen DDC Program
Dolmen DDC ProgramDolmen DDC Program
Dolmen DDC Program
 
Knockout js
Knockout jsKnockout js
Knockout js
 
Online creche
Online crecheOnline creche
Online creche
 
Hiram award recipients
Hiram award recipientsHiram award recipients
Hiram award recipients
 
Node分享 展烨
Node分享 展烨Node分享 展烨
Node分享 展烨
 
快速打包工具Quick build
快速打包工具Quick build快速打包工具Quick build
快速打包工具Quick build
 
La texsymbols a4
La texsymbols a4La texsymbols a4
La texsymbols a4
 
History of the lodge by buster
History of the lodge by busterHistory of the lodge by buster
History of the lodge by buster
 
性能问题的快速定位
性能问题的快速定位性能问题的快速定位
性能问题的快速定位
 
Food processing
Food processingFood processing
Food processing
 
estudio de factibilidad de un proyecto
estudio de factibilidad de un proyectoestudio de factibilidad de un proyecto
estudio de factibilidad de un proyecto
 
Demand Control System BMS-Tetrapak
Demand Control System BMS-TetrapakDemand Control System BMS-Tetrapak
Demand Control System BMS-Tetrapak
 
Budget presentation 2012
Budget presentation 2012Budget presentation 2012
Budget presentation 2012
 

Similar to Jasmine

使用Dsl改善软件设计
使用Dsl改善软件设计使用Dsl改善软件设计
使用Dsl改善软件设计mingjin
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 
Ruby Rails 老司機帶飛
Ruby Rails 老司機帶飛Ruby Rails 老司機帶飛
Ruby Rails 老司機帶飛Wen-Tien Chang
 
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7Justin Lin
 
持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版Kirk Chen
 
Google Dart 介紹
Google Dart 介紹Google Dart 介紹
Google Dart 介紹Ticore Shih
 
Linux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledgeLinux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledgeAngel Boy
 
網站上線了,然後呢?
網站上線了,然後呢?網站上線了,然後呢?
網站上線了,然後呢?Kirk Chen
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践丁 宇
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践taobao.com
 
改善Programmer生活的sql技能
改善Programmer生活的sql技能改善Programmer生活的sql技能
改善Programmer生活的sql技能Rack Lin
 
如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scala如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scalajavatwo2011
 
大型互联网站性能优化
大型互联网站性能优化大型互联网站性能优化
大型互联网站性能优化丁 宇
 
前端性能测试
前端性能测试前端性能测试
前端性能测试tbmallf2e
 
Yog Framework
Yog FrameworkYog Framework
Yog Frameworkfansekey
 
A brief introduction to Machine Learning
A brief introduction to Machine LearningA brief introduction to Machine Learning
A brief introduction to Machine LearningWen-Tien Chang
 
Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________Gelis Wu
 
05.wls调优
05.wls调优05.wls调优
05.wls调优Meng He
 

Similar to Jasmine (20)

使用Dsl改善软件设计
使用Dsl改善软件设计使用Dsl改善软件设计
使用Dsl改善软件设计
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
Ruby Rails 老司機帶飛
Ruby Rails 老司機帶飛Ruby Rails 老司機帶飛
Ruby Rails 老司機帶飛
 
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
 
持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版
 
Google Dart 介紹
Google Dart 介紹Google Dart 介紹
Google Dart 介紹
 
BDD in .NET
BDD in .NETBDD in .NET
BDD in .NET
 
Linux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledgeLinux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledge
 
網站上線了,然後呢?
網站上線了,然後呢?網站上線了,然後呢?
網站上線了,然後呢?
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
 
改善Programmer生活的sql技能
改善Programmer生活的sql技能改善Programmer生活的sql技能
改善Programmer生活的sql技能
 
如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scala如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scala
 
大型互联网站性能优化
大型互联网站性能优化大型互联网站性能优化
大型互联网站性能优化
 
前端性能测试
前端性能测试前端性能测试
前端性能测试
 
Yog Framework
Yog FrameworkYog Framework
Yog Framework
 
A brief introduction to Machine Learning
A brief introduction to Machine LearningA brief introduction to Machine Learning
A brief introduction to Machine Learning
 
Fl介绍
Fl介绍Fl介绍
Fl介绍
 
Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________
 
05.wls调优
05.wls调优05.wls调优
05.wls调优
 

Jasmine