注入后的 JS-Data 慢茉莉花测试

JS-Data slow jasmine tests after inject

我在 angularjs 中有一个 JS-Data 资源,每次我在 (Jasmine) 测试中对其调用 inject 时,测试都会变慢,最多需要 700 毫秒。

每次测试后我都在做 ejectAll()。它也没有执行任何 $http 请求,所以我没有线索...

知道为什么 JS-Data 注入在我的测试中会这么慢吗?

发现:在我的资源定义中,我将 UseClass 属性 设置为更改实例的模型,用 getter 到 Object.defineProperty 替换数组。 如前所述 here

The DS.change fires on a Resource whenever any item in the Store for that Resource changes.

getter 导致 JS-Data 认为实例已更改,从而触发无限摘要循环。 10 次摘要后 angular 放弃,但这需要一些时间,导致测试缓慢。

经验教训:不要使用 getter 属性扩展持久化 DS 模型实例,因为它们会触发无限变化。