2017-01-30 13 views
0

ember.jsでサービスの単体テストを書くときに、私は奇妙なやりとりを見ています。これは配列でのみ発生します。EmberJSのユニットテストサービス:テスト間の相互作用を防ぐには?

私はプロパティとして配列を持つサービスを持っています。アレイの状態は、異なるテスト間で共有されます。プロパティに単純な型(たとえば、数値)がある場合、この動作は表示されません。あなたは何が起こっているかのヒントはありますか? https://ember-twiddle.com/068e0c0fd7240e54c98972002fc2e34f?openFiles=tests.unit.services.my-service-test.js%2C

アップデート:ここで

は燃えさし-ひねり問題を実証している私は init()で配列を初期化だが、私はサービスオブジェクトのプロパティとして宣言されていない場合ならば、それは正常に動作します気づきました。異なるインスタンス間で、配列やオブジェクトの共有状態などの複雑な型はありますか?

だから、これは動作しません。

import Ember from 'ember'; 
export default Ember.Service.extend({ 
    array: [], 
}); 

これは期待通りに働いているのでしょう:どのEmber.Objectに直接定義

import Ember from 'ember'; 
export default Ember.Service.extend({ 
    array: undefined, 
    init() { 
    this.set('array', []); 
    } 
}); 

答えて

0

配列やオブジェクトはすべてのインスタンスで を共有していますそのオブジェクトの。

セクションthe guide

init機能で定義する必要があります。あなたがいない場合、彼らは同じオブジェクトを共有します。