标签:描述 测试的 单元测试 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是可以嵌套使用的
it(string, function):测试用例(官方称之为spec)
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: 调用函数时的参数
标签:描述 测试的 单元测试 was runner 测试 嵌套 null releases
原文地址:http://www.cnblogs.com/DivHao/p/6627809.html