Javascript测试框架Jasmine

introduction.js

Jasmine是Javascript行为驱动测试开发框架,它并不依赖其他任何开发框架,也不需要DOM结构的支持。本指南在Jasmine version1.2.0 revision 1337006083测试通过。

Suite:describe Your Tests

一个测试suite以Jasmine全局函数describe声明,它带有两个参数:一个字符串和一个函数。字符串是该suite的名称,函数则实现了该suite。

Specs

Specs由Jasmine全局函数it定义,和describe一样,它带有两个参数。字符串是specs名称,函数定义了specs;一个spec包含了一个或多个expectations来测试代码。expectation在Jasmine中是断言,可能为true或false。一个spec里面所有expectations都为true,则该spec通过。如果有一个或多个expectations值为false,则spec失败。

It's Just Functions

由于describe和it都是函数,所以它们中可以包含任何可执行代码来完成测试。在describe中定义定义的变量在所有it函数中都可以使用。

Expectations

Expectation是通过expect函数构建的,它只需要一个参数:实际值;它的返回值可以链接一个Matcher函数,该函数带有一个参数:预计值;

Matchers

每一个Matcher都比较实际值和预计值,通过这种方式来使得spec获得通过或失败;

任何Matcher可以通过在函数调用链钟调用not属性反转断言;

Included Matchers

Jasmine自带有大量的Matcher。当然,你也可以根据自己特殊的需要自定义Matcher;

Grouping Related Specs with describe

describe用于将相关的spec聚集起来。describe中定义的名称能和spec中定义的名称连结成为spec的全名;

Setup and Teardown

Jasmine提供了beforeEach和afterEach函数来为你suite中的所有spec提供通用的在测试前的准备和测试后处理操作。

Nesting describe Blocks

对describe的调用可以嵌套。这允许suite由树状的函数组成。在spec被执行前,Jasmine遍历树状结构执行所有beforeEach函数;在所有spec执行后,Jasmine遍历执行afterEach函数。

Disabling Specs and Suites

Suite和Spec可以使用xdescribe和xit停用。这些Spec和Suite将会跳过而不被执行。

Spies

Spy可以记录函数调用以及赋予它的参数。以下是一些特殊的用户Spy的Matcher:toHaveBeenCalled,toHaveBeenCalledWith等;

Spies:andCallThrough

通过addCallThrough函数链接Spy,Spy仍然会记录函数调用等信息。但是函数的实际实现将被委托(个人理解是实现的函数已经不具有原先的功能了);

Spies:andReturn

通过addReturn函数链接Spy,Spy会返回特定的值;

Spies:andCallFake

通过addCallFake可以使用自定义的函数替换掉原函数的调用;

Spies:createSpy

当没有函数可以被查看时,可以使用createSpy创建一个空的Spy,它可以用于记录调用,参数使用等信息,但是内部没有实际的实现;

Spies:createSpyObj

通过createSpyObj可以创建拥有一系列Spy的对象;

Matching Anything with jasmine.any

jasmine.any需要一个构造函数作为参数,当实际值的构造函数和该参数相同时候返回true;

Mocking the Javascript Clock

Jasmine Mock Clock可用于对于setTimeout和setInterval的测试。它的使用使得计时器代码仿佛在同步(sync)等待运行;Clock通过jasmine.Clock.useMock初始化,通过jasmine.Clock.tick来同步计时;

Asynchronous Support

Jasmine支持异步操作测试,通过在Spec中调用一系列的runs块,并在块末尾调用异步函数。

对于异步支持的功能还不理解;

The Runner and Reporter

Jasmine必须运行在javascript环境中,如网页。

它通过创建HTMLReporter来报告最后的spec和suite结果;



引用:http://pivotal.github.com/jasmine/


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值