惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
C
Check Point Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
博客园 - 司徒正美
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
云风的 BLOG
云风的 BLOG
Cisco Talos Blog
Cisco Talos Blog
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
V
V2EX - 技术
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Spread Privacy
Spread Privacy
罗磊的独立博客
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
O
OpenAI News
Jina AI
Jina AI
PCI Perspectives
PCI Perspectives
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
I
InfoQ
D
Docker
P
Palo Alto Networks Blog
Recorded Future
Recorded Future
M
MIT News - Artificial intelligence
博客园 - Franky
B
Blog
Scott Helme
Scott Helme
博客园 - 叶小钗
D
DataBreaches.Net

博客园 - Zhuang miao

使用bootstrap和metroui设计的微网站或手机app界面 利用Mahout实现在Hadoop上运行K-Means算法 大连二手汽车培训网上线 淘宝开放平台API调用nodejs实现 Nodejs+express+angularjs+mongodb搭建前端项目框架NJBlog 淘宝UED前端智勇大冲关第二季 CC.net&Nant配置文件 介绍一个款可以在javascript对象上实现观察者模式的类库-Watch.js 开发nodejs模块并发布到npm的简单示例 用jsTestDriver运行jasmine cases 使用Jasmine测试你的Javascript(三)之 Matchers 使用Jasmine测试你的Javascript(二)之 Suites和specs 用SignalR创建实时永久长连接异步网络应用程序 Javascript实现图片的预加载的完整实现 常见前端面试题【转】 更改页面背景的jquery插件 javascript面向对象中的对象创建、继承、封装等实现方式 12款华丽的Admin管理后台模板 AOP
使用Jasmine测试你的Javascript(一)之 Jasmine简介
Zhuang miao · 2012-11-14 · via 博客园 - Zhuang miao

2012-11-14 16:14  Zhuang miao  阅读(5184)  评论()    收藏  举报

Jasmine是一个用来编写avascript测试的框架,它不依赖于任何其它的javascript框架,也不需要对DOM的依赖。它有拥有灵巧而明确的语法可以让你轻松的编写测试代码。如下代码展现的是一个最基本的Jasmine使用。

describe("Jasmine", function() {
   it("makes testing JavaScript awesome!", function() {
      expect(yourCode).toBeLotsBetter();
   });
});

获取Jasmine

Jasmine被托管在GitHub上,您可以通过https://github.com/pivotal/jasmine 获取Jasmine的相关代码。

如果您懒得下载大量代码,仅仅想看看Jasmine的效果,这个在线的可以满足您的需要 http://tryjasmine.com/ ,您也可以在这里测试本文中的大部分代码。

Jasmine背景

在如今浩瀚的Javascript代码库中已经有了很多的Javascript测试框架可以供我们直接使用,那我们为什么还要编写Jasmine呢?

因为在现如今已存在的测试框架中几乎还没有一个能满足我们工作需要的,比如很多只能在浏览器中工作,大多数不支持对异步代码进行测试比如(Event Callbacks)事件回调,还有一些框架的语法很难被Javascript开发者或是IDEs理解。

所以我们决定从头开始!

走进Jasmine

Jasmine是我们梦寐以求的Javascript测试框架,它深受ScrewUnit,JSSpec,JSpec和RSpec影响,并充分借鉴其中的优秀部分。

Jasmine的设计牢牢遵循如下几个原则,我们相信它是一个优秀的Javascript测试框架。

  • 不应该被依赖在任何的(Browser)浏览器、(Framework)框架、(Platform)平台,或是(Host Language)宿主语言中。
  • 应该具有符合以往编程习惯和不会让人感觉诧异的语法。
  • 可以在任何地方工作,包括浏览器,服务器,手机等等
  • 不应该对您的应用程序具有侵入性(比如,搞乱你的全局命名空间).
  • 应该与IDEs紧密结合(比如,测试代码应该通过(static analysis)静态分析).

我们编写Jasmine的目标:

  • 它应该鼓励人们进行良好的测试实践
  • 它应该可以轻松简单的集成到持续构建系统中
  • 它应该是简单的开始