Я вытаскиваю свои волосы, пытаясь понять, как издеваться над конструктором с помощью синона. У меня есть функция, которая будет создавать несколько виджетов, вызывая конструктор, который принимает несколько аргументов. Я хочу проверить, что конструктор называется правильным числом раз с правильными параметрами, но я не хочу, чтобы фактически создавать виджеты. Следующие ссылки, по-видимому, объясняют простой способ издеваться над конструктором, однако это не работает для меня:
Шпионаж на конструкторе с использованием Jasmine
http://tinnedfruit.com/2011/03/25/testing-backbone-apps-with-jasmine-sinon-2.html
Когда я делаю следующий вызов, чтобы заглушить конструктор:
sinon.stub(window, "MyWidget");
Я получаю следующую ошибку:
Uncaught TypeError: Attempted to wrap undefined property MyWidget as function
При отладке в Chrome я вижу, что MyWidget отображается в локальном разделе переменных области, однако свойство MyWidget отсутствует в окне.
Любая помощь будет принята с благодарностью.