jasmine

Specs

Spec表示测试用例,以it(string, function)函数封装,它也包含2个参数:
string:测试用例名称,
function:测试用例函数。

Expectations

Expectation就是一个断言,以expect语句表示,返回truefalseexpect语句有1个参数,代表要测试的实际值(the actual)。

只有当一个Spec中的所有Expectations全为ture时,这个Spec才通过,否则失败。

Expectation带实际值,它和表示匹配规则的Matcher链接在一起,Matcher带有期望值。

Matchers

Matcher实现了断言的比较操作,将Expectation传入的实际值和Matcher传入的期望值比较。
任何Matcher都能通过在expect调用Matcher前加上not来实现一个否定的断言(expect(a).not().toBe(false);)。

常用的Matchers有:

  • toBe():相当于===比较。
  • toNotBe()
  • toBeDefined():检查变量或属性是否已声明且赋值。
  • toBeUndefined()
  • toBeNull():是否是null
  • toBeTruthy():如果转换为布尔值,是否为true
  • toBeFalsy()
  • toBeLessThan():数值比较,小于。
  • toBeGreaterThan():数值比较,大于。
  • toEqual():相当于==,注意与toBe()的区别。
    一个新建的Object不是(not to be)另一个新建的Object,但是它们是相等(to equal)的。

    expect({}).not().toBe({});
    expect({}).toEqual({});
  • toNotEqual()
  • toContain():数组中是否包含元素(值)。只能用于数组,不能用于对象。
  • toBeCloseTo():数值比较时定义精度,先四舍五入后再比较。

      it("The 'toBeCloseTo' matcher is for precision math comparison", function() {
    var pi = 3.1415926,
      e = 2.78;
    
    expect(pi).not.toBeCloseTo(e, 2);
    expect(pi).toBeCloseTo(e, 0);
      });
  • toHaveBeenCalled()
  • toHaveBeenCalledWith()
  • toMatch():按正则表达式匹配。
  • toNotMatch()
  • toThrow():检验一个函数是否会抛出一个错误

原文地址:https://www.cnblogs.com/Jerry-spo/p/6271081.html