2017-05-22 12 views
1

テスト中にReactアプリケーションで自分のデータレイヤーを切り替えたいと思っています。角度の世界では、これは...Reactの依存関係をどのように管理しますか?

class Repository{ 
    getData(){ 
    //use http and get some data 
    } 
} 

class AngularController(Repository){ 
    var self = this; 
    Repository.getData().then((objects) => { 
     this.pageObjects = objects; 
    }) 
} 

//test 
inject('check that controller sets data',(Repository, $controller) => { 
    spyOn(Repository.getData).returns(fakeData); 
    var controller = $controller('AngularController'); 
    expect(controller.data).toBe(fakeData); 
}) 

しかし、どうやらそれは機能的であり、IOCが悪いと私は代わりに、IOCのモジュールを使用しても、その「すべきである」私が使って世界を反応させるので、私はこれを行うだろう簡単でしたどのように私はこれをReactでやっていますか?

答えて

0

あなたは、私はそれらをスタブできるように、すべてのエクスポート機能を持つオブジェクトを取得するためにスタブおよび

import * as repo from 'repository'; 

するsinonを使用することができます。

import sinon from 'sinon'; 
import ReactComponent from 'ReactComponent'; 
import * as repo from 'Repository'; 

sinon.stub(repo, 'getData', m => { 
    return ["some", "data"]; 
}); 

describe('component stuff',() => { 
    it('component fetching phase',() => { 
    //not sure how you test your component rendering... 
    //but you can use jest or enzyme 
    }); 
}); 
関連する問題