JS-Data медленные тесты жасмина после инъекции

У меня есть ресурс JS-Data в angularjs, и каждый раз, когда я звоню inject на нем в тесте (Жасмин) тест замедляется, занимая до 700 мс.

Я уже делаю ejectAll() после каждого теста. Это не делает какой-либо $http просит либо, так что я не в курсе...

Есть идеи, почему инъекции JS-Data могут быть такими медленными в моих тестах?

1 ответ

Решение

Нашел это: в моем определении ресурса я установил UseClass свойство модели, которая изменила экземпляр, заменив массив методом геттера Object.defineProperty, Как указано здесь:

DS.change запускает ресурс каждый раз, когда изменяется какой-либо элемент в хранилище для этого ресурса.

Геттер привел к тому, что JS-Data решил, что экземпляр изменился, запустив бесконечный цикл дайджеста. После 10 дайджестов угловой сдаётся, но это занимает некоторое время, что приводит к медленным тестам.

Извлеченный урок: не расширяйте устойчивые экземпляры модели DS с помощью свойств получателя, поскольку они вызывают бесконечные изменения.

Другие вопросы по тегам