我在angularjs中有一个JS-Data资源,每次在(Jasmine)测试中调用inject
时,测试都会减慢,最多需要700毫秒。
我在每次测试后都在做ejectAll()
。它也没有做任何$http
请求,所以我没有线索......
为什么JS-Data注入可能在我的测试中如此缓慢?
答案 0 :(得分:0)
找到它:在我的资源定义中,我将UseClass
属性设置为更改实例的模型,将数组替换为通过Object.defineProperty
的getter。
如上所述here:
只要Store中的任何项目,DS.change就会触发资源 资源发生变化。
getter导致JS-Data认为实例发生了变化,触发了无限的摘要循环。 10次消化后,角度放弃,但需要一些时间,导致测试缓慢。
获得的经验教训:不要使用getter属性扩展持久性DS模型实例,因为它们会触发无限更改。