jasmine中的matchers

原文http://www.cnblogs.com/mz121star/archive/2012/11/14/jasmine3.html


expect(x).toEqual(y); 当x和y相等时候通过

expect(x).toBe(y); 当x和y是同一个对象时候通过

expect(x).toMatch(pattern); x匹配pattern(字符串或正则表达式)时通过

expect(x).toBeDefined(); x不是undefined时通过

expect(x).toBeUndefined(); x 是 undefined时通过

expect(x).toBeNull(); x是null时通过

expect(x).toBeTruthy(); x和true等价时候通过

expect(x).toBeFalsy(); x和false等价时候通过

expect(x).toContain(y);x(数组或字符串)包含y时通过

expect(x).toBeLessThan(y); x小于y时通过

expect(x).toBeGreaterThan(y); x大于y时通过

expect(function(){fn();}).toThrow(e); 函数fn抛出异常时候通过

旧版本中的一些matchers(匹配器) toNotEqualtoNotBetoNotMatchtoNotContain 将在以后被废除.建议使用not.toEqualnot.toBenot.toMatch, and not.toContain respectively.

所有的matchers匹配器支持添加 .not反转结果:

expect(x).not.toEqual(y); 

自定义Matchers(匹配器)

以上提供的Matchers(匹配器)已经可以满足你的大部分需求了,但是我们仍然推荐你按照需求定义自己的匹配器去匹配更加复杂的情况,自定义匹配器可以使你的代码意图更加明了,并且可以帮你移除重复的代码。

自定义(matchers)匹配器是一件很简单的事件,一个matcher(匹配器)函数使用 this.actual 接收到一个实际值,并且该匹配函数也可以包括0或多个参数。当实际值通过匹配器的匹配,你应当返回一个ture否则返回false。

以下代码定义了一个名为 toBeLessThan()的匹配器:

toBeLessThan: function(expected) {
return this.actual < expected;
};

将匹配器添加到suite中, 在before或者it代码块内调用this.addMatchers() 

beforeEach(function() {
this.addMatchers({
toBeLessThan: function(expected) {
return this.actual < expected;
}
});
});

你可以自定义匹配失败的消息,在匹配函数中给this.message赋值即可实现

beforeEach(function() {
this.addMatchers({
toBeLessThan: function(expected) {
var actual = this.actual;
var notText = this.isNot ? " not" : "";
this.message = function () {
return "Expected " + actual + notText + " to be less than " + expected;
}
return actual < expected;
}
});
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值