2014-09-23 5 views
0

У меня есть некоторый код, который выглядит так:Тестирование конструктор инициализирует еще один класс

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

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

конкретизированных как так:

var ins = new testLib({}); 

Я хочу, чтобы проверить, что конструктор tesLib правильно инстанцирует Config с правильные аргументы с использованием жасмина. Я пробовал это:

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

Но это не работает. Я получаю сообщение об ошибке, поскольку метод testLib.Config не существует. Это определенно существует, поскольку я включаю всю мою библиотеку, поэтому она доступна для жасмина.

как я могу проверить это?

ответ

0

Второй параметр метода spyOn должен быть именем свойства, которое ссылается на function/method.

Пробег: spyOn(testLib, 'Config'). Он должен работать.

Кроме того, javascript - это случай senstive. свойство Config - это верхний регистр C. Проверьте второй параметр вашего метода spyOn.

Смежные вопросы