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

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

问题描述:

我有一些代码,看起来像这样:测试一个构造函数实例化另一个类

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

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

实例化,像这样:

var ins = new testLib({}); 

我想测试的tesLib构造正确实例化的配置与用茉莉花纠正争论。我试试这个:

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

但是这不起作用。我收到一个错误,说testLib.Config方法不存在。它确实存在,因为我包括我的整个图书馆,所以它可用于茉莉花。

我该如何测试?

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

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

此外,JavaScript是情况下灵敏。属性Config为大写C.检查spyOn方法的第二个参数。