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的目标:
- 它应该鼓励人们进行良好的测试实践
- 它应该可以轻松简单的集成到持续构建系统中
- 它应该是简单的开始