У меня есть сложный класс javascript, который имеет много функций, многие из которых будут генерировать исключения, если они вызывается за пределами производственной среды. Мне нужно передать макеты экземпляров этого класса в конструктор другого класса в моих тестах, однако я не хочу, чтобы какие-либо из функций сложных классов действительно вызывались. То, что я хотел бы сделать, это иметь поддельный объект, который имеет все функции и свойства сложного класса, но для всех функций просто быть шпионами жасмина, которые ничего не делают.Любой способ отслеживать весь экземпляр с помощью Jasmine
В основном я хочу, чтобы быть в состоянии сделать
var fakeComplexClass = createFakeObject(ComplexClass);
var testInstanceOfSimpleClass = new SimpleClass(fakeComplexClass);
И будьте уверены, что если testInstanceOfSimpleClass
вызывает какой-либо из функций fakeComplexClass
они будут шпионы и, таким образом, не врезаться мои тесты.
я мог бы сделать что-то вроде
var fakeComplexClass = { function1() {};, function2() {}; ... }
но есть много функций, и у меня есть несколько различных сложные классам мне нужно проверить так просто легкий способ в основном следить за каждую функцию в классе, что Мне нужно. \
У Jasmine есть createSpyObj, но для этого требуется передать ему ряд функций. Я не хочу поддерживать этот массив в своих тестах, если мне приходится добавлять или удалять функции из сложного класса, поэтому мне бы хотелось что-то, что можно просто шпионить за каждой функцией, которая есть.
Заранее спасибо.
Спасибо! Это делает трюк :) – asutherland