2016-09-02 28 views
0

私はルートのための私の最初の単体テストを書くことを試みます。エバーユニットテストルート - これは定義されていません

プロジェクト/ファイル

actions: { 
    afterSave(savedFile){ 
    // ... some code 
    let controller = this.controllerFor('project.files'); 
    // ... 
    } 
} 

テスト:

test('save file', function(assert) { 
    let route = this.subject(); 
    console.log(route); 
    let project; 
    Ember.run(() => { 
    project = route.get('store').createRecord('project', { 
     id: '1', 
     name: 'test' 
    }); 

    let afterSave = route.get('actions.afterSave'); 
    afterSave(project); 
    }); 

    assert.ok(true); 
}) 

私はTypeError例外を取得しています問題:プロパティを読み取ることができません 'controllerFor' 未定義の。 thisは未定義です。

答えて

2

Ember GuidesのTesting Routesセクションをご覧になると、そのアクションと機能を分けることができます。 私はそれを提案することができます。 それはのような、ルートのsend方法を使用しています。route.send('afterSave');

しかし、あなただけのコードを実行したい場合は、のようなテストコードからafterSaveアクションを呼び出す:afterSave.bind(route)(project);。 Ref:bind function(私はこれを示唆していません。また、次のような行動を検索することをお勧めしません:route.get('actions.afterSave')

関連する問題