- JasmineJS 教程
- JasmineJS - 首页
- JasmineJS - 概览
- JasmineJS - 环境设置
- JasmineJS - 书写文本和执行
- JasmineJS - BDD 架构
- JasmineJS - 测试构建基块
- JasmineJS - 匹配器
- JasmineJS - 跳过块
- JasmineJS - 相等性检查
- JasmineJS - 布尔值检查
- JasmineJS - 顺序检查
- JasmineJS - 空值检查
- JasmineJS - 不相等性检查
- JasmineJS - 非数字检查
- JasmineJS - 异常检查
- JasmineJS - beforeEach()
- JasmineJS - afterEach()
- JasmineJS - 间谍
- JasmineJS 实用资源
- JasmineJS - 快速指南
- JasmineJS - 实用资源
- JasmineJS - 讨论
JasmineJS - 匹配器
Jasmine 是一个测试框架,故其始终旨在将 JavaScript 文件或函数的结果与预期结果进行比较。匹配器在 Jasmine 框架中起着相似的作用。
匹配器是执行实际输出和预期输出之间的布尔比较的 JavaScript 函数。匹配器分为两种类型:内置匹配器和自定义匹配器。
内置匹配器
内置在 Jasmine 框架中的匹配器称为内置匹配器。用户可以轻松地隐式使用它。
以下示例展示了内置匹配器如何在 Jasmine 框架中工作。我们在前面的章节中已使用过一些匹配器。
describe("Adding single number ", function () { //example of toEqual() matcher it("should add numbers",function() { expect(nested.add(5)).toEqual(5); expect(nested.add(5)).toEqual(10); }); it("should add numbers",function() { expect(nested.addAny(1,2,3)).toEqual(6); }); }
在此示例中,toEqual() 是内置匹配器,它会将 add() 和 addAny() 方法的结果与传递给 toEqual() 匹配器的参数进行比较。
自定义匹配器
不在 Jasmine 内置系统库中的匹配器称为自定义匹配器。自定义匹配器需要显式定义。在以下示例中,我们将了解自定义匹配器如何工作。
describe('This custom matcher example', function() { beforeEach(function() { // We should add custom matched in beforeEach() function. jasmine.addMatchers ({ validateAge: function() { Return { compare: function(actual,expected) { var result = {}; result.pass = (actual > = 13 && actual < = 19); result.message = 'sorry u are not a teen '; return result; } }; } }); }); it('Lets see whether u are teen or not', function() { var myAge = 14; expect(myAge).validateAge(); }); it('Lets see whether u are teen or not ', function() { var yourAge = 18; expect(yourAge).validateAge(); }); });
在上面的示例中,validateAge() 作为匹配器工作,它实际上验证了你的年龄与某些范围。在此示例中,validateAge() 作为自定义匹配器。将此 JS 文件添加到 SpecRunner.html 中并运行它。它将生成以下输出。
广告