码迷,mamicode.com
首页 > 其他好文 > 详细

jasmine初体验

时间:2017-07-05 18:49:07      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:描述   测试的   单元测试   was   runner   测试   嵌套   null   releases   

Jasmine是一个Javascript的BDD(Behavior-Driven Development)测试框架,不依赖任何其他框架。

从Github上(https://github.com/pivotal/jasmine/releases)下载所需的Jasmine版本。下载完成之后,直接打开SpecRunner.html即为Demo,除了引入Jasmine框架之外,只需引用自己所需测试的js文件以及Jasmine测试脚本引可。

一、基本语法介绍

describe(string, function):可以理解为是一个测试集或者测试包,主要功能是用来划分单元测试的,describe是可以嵌套使用的

  • 参数string:描述测试包的信息
  • 参数function:测试集的具体实现

it(string, function):测试用例(官方称之为spec)

  • 参数string:描述测试用例的信息
  • 参数function:测试用例的具体实现

 expect:断言表达式(个人理解为期望值)

 

Spy用来追踪函数的调用历史信息(是否被调用、调用参数列表、被请求次数等)。Spy仅存在于定义它的describe和it方法块中,并且每次在spec执行完之后被销毁。

(function(){
  describe("A spy", function() {
    var foo, bar = null;

    beforeEach(function() {
      foo = {
        setBar: function(value) {
        bar = value;
      }
    };

    spyOn(foo, ‘setBar‘); // 在foo对象上添加spy

    // 此时调用foo对象上的方法,均为模拟调用,因此不会执行实际的代码
    foo.setBar(123); // 调用foo的setBar方法
    foo.setBar(456, ‘another param‘);
  });

  it("tracks that the spy was called", function() {
    expect(foo.setBar).toHaveBeenCalled(); //判断foo的setBar是否被调用
  });

  it("tracks all the arguments of its calls", function() {
    expect(foo.setBar).toHaveBeenCalledWith(123); //判断被调用时的参数
    expect(foo.setBar).toHaveBeenCalledWith(456, ‘another param‘);
  });

  it("stops all execution on a function", function() {
    expect(bar).toBeNull(); // 由于是模拟调用,因此bar值并没有改变
  });
});
})();

 

当在一个对象上使用spyOn方法后即可模拟调用对象上的函数,此时对所有函数的调用是不会执行实际代码的。

toHaveBeenCalled: 函数是否被调用

toHaveBeenCalledWith: 调用函数时的参数

jasmine初体验

标签:描述   测试的   单元测试   was   runner   测试   嵌套   null   releases   

原文地址:http://www.cnblogs.com/DivHao/p/6627809.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!