JS-Data медленные тесты жасмина после инъекции
У меня есть ресурс JS-Data в angularjs, и каждый раз, когда я звоню inject
на нем в тесте (Жасмин) тест замедляется, занимая до 700 мс.
Я уже делаю ejectAll()
после каждого теста. Это не делает какой-либо $http
просит либо, так что я не в курсе...
Есть идеи, почему инъекции JS-Data могут быть такими медленными в моих тестах?
1 ответ
Нашел это: в моем определении ресурса я установил UseClass
свойство модели, которая изменила экземпляр, заменив массив методом геттера Object.defineProperty
, Как указано здесь:
DS.change запускает ресурс каждый раз, когда изменяется какой-либо элемент в хранилище для этого ресурса.
Геттер привел к тому, что JS-Data решил, что экземпляр изменился, запустив бесконечный цикл дайджеста. После 10 дайджестов угловой сдаётся, но это занимает некоторое время, что приводит к медленным тестам.
Извлеченный урок: не расширяйте устойчивые экземпляры модели DS с помощью свойств получателя, поскольку они вызывают бесконечные изменения.