美文网首页
Karma - Jasmine语法

Karma - Jasmine语法

作者: Lisa_Guo | 来源:发表于2020-01-07 09:39 被阅读0次

Jasmine可结合Karma使用,提供具体的测试代码。它是一个行为驱动测试(BDD)的测试框架,不依赖与浏览器、dom或其他js框架,可以方便地在各种场景中使用。

1. 套件suit: describe
全局函数describe(description, specDefinitions)用于创建一个套件,封装一组测试代码

Name Type Description
description String 定义分组名称
specDefinitions function 定义一个函数,包含一组要测试的内部suit和测试规范specs

2. 规范spec:lt
全局函数it(description, testFunctionopt, timeoutopt)定义一个单独的测试规范。一个规范 spec 应该包含一个或多个期望值 expectations。一个 spec 的所有 expectation 都成功才算为测试成功

Name Type Attributes Default Description
description String 定义一个规范名称
testFunction implementationCallback <optional> 测试代码
timeout Int <optional> jasmine.DEFAULT_TIMEOUT_INTERVAL 异步sepc的timeout

3. 断言expectation: expect
expect| expectAsync (actual) → {matchers}spec创建一个断言 expectation

Name Type Description
actual Object 要测试的目标变量或对象

一个Suite(describe)包含多个Specs(it),一个Specs(it)包含多个断言(expect)。

4. 匹配器Matcher
每一个匹配器实现的是真实值和期望值的比较。它负责报告给jasmine如果期望值是真的或者假的。jasmine将使这个规范通过或者失败。
所有matcher请参考: https://jasmine.github.io/api/3.5/matchers.html

not:对matcher进行反操作

expect(something).not.toBe(true);

4.1 Number匹配

  • boBe(expected):用来比较数字或者字符串是否相等,不支持对象的比较。会执行===操作
it("The 'toBe' matcher compares with ===", function() {
    var a = 12;
    var b = a;
    expect(a).toBe(b);
    expect(a).not.toBe(null);
  });

测试结果


  • toBeGreaterThan(expected):用于Number类型的比较,实际值要大于期望值

  • toBeGreaterThanOrEqual(expected):用于Number类型的比较,实际值大于或等于期望值

  • toBeLessThan(expected):用于Number类型的比较,实际值小于期望值

  • toBeLessThanOrEqual(expected):用于Number类型的比较,实际值小于等于期望值

  • toBeNegativeInfinity():实际值是否是 -Infinity

  • toBePositiveInfinity():实际值是否是 Infinity

  • toBeNaN(expected):判断实际值是否是NaN (not a number)

4.2 Object匹配

  • toEqual(expected):可以用来比较简单的文本和变量,还有对象是否相等。可用于深比较
it("The 'toEqual' for deep comparision", function() {
    var bigObject = {
      foo: ['bar', 'baz']
    };
    var anotherObject = {
      foo: 'bar'
    };
    expect(bigObject).toEqual({ foo: ['bar', 'baz'] });
    // expect(anotherObject).toEqual({ foo: ['bar', 'baz'] });
  });

测试结果


  • toBeInstanceOf(expected):判断实际值是否是期望类的一个实例,expected为类型(Number, Object 等)

  • toContain(expected):实际值是否包含期望值,expected为要匹配的值

  • toBeUndefined():实际值是否是 undefined

4.3 Boolean匹配

  • toBeNull():实际值是否是 null

  • toBeTrue():实际值是否是 true

  • toBeTruthy():实际值是否是 truthy

相关文章

网友评论

      本文标题:Karma - Jasmine语法

      本文链接:https://www.haomeiwen.com/subject/zcgooctx.html