测试构造函数实例化另一个类

时间:2014-09-23 10:28:42

标签: javascript unit-testing jasmine

我有一些看起来像这样的代码:

var testLib = function(params) {
    this.conf = new testLib.Config(params);
};

testLib.Config = function(params) {
    //do stuff with params
};

实例化如下:

var ins = new testLib({});

我想测试tesLib构造函数使用jasmine正确地使用正确的参数实例化Config。我正在尝试这个:

    spyOn(window,'testLib.Config');
    var test = new testLib('testparam');
    expect(testLib.Config).toHaveBeenCalledWith('testparam');

但这不起作用。我得到一个错误,说testLib.Config方法不存在。它肯定存在,因为我包括我的整个库,所以它可用于茉莉。

我该怎么测试呢?

1 个答案:

答案 0 :(得分:0)

spyOn方法的第二个参数应该是引用function/method的属性名称。

试试spyOn(testLib, 'Config')。它应该工作。

此外,javascript是案例敏感。属性Config是大写C.检查spyOn方法的第二个参数。