Jasmine - 如何使用所有方法创建一个纯存根

时间:2014-07-02 11:01:26

标签: javascript jasmine

在Jasmine中,如何创建一个纯存根,所有方法都是stubbed并返回undefined?

1 个答案:

答案 0 :(得分:2)

我不认为开箱即用,但您可以创建自己的。

describe('Stub all', function(){
var stubAll = function(obj){
    for(propt in obj){
        if(typeof obj[propt]  === 'function')
            spyOn(obj, propt).and.returnValue(undefined)
    }
}

var underTest = {
  thing: {},
    foo: function(){
        return 'bar';
    },
    bar: function(){
        return 'foo';
    }
};

it('should return undefined for all functions.', function(){
    stubAll(underTest);

    expect(underTest.foo()).toEqual(undefined);
    expect(underTest.bar()).toEqual(undefined);
});
});

stubAll函数会为传入的对象上的每个函数添加一个间谍,它将返回undefined。