美文网首页
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