2016-04-13 9 views
1

Ich habe eine Komponente, die zum Speichern verbunden ist. Und ich muss eine Funktion innerhalb der Reaktionskomponente testen. Wie kann ich zu dieser Funktion gelangen?Wie kann ich die Funktion innerhalb der angeschlossenen Komponente testen?

ZB:

var newReactComponent = React.createClass({ 
    functionToBeTested: function(){ 
     this.props.actions.fetchAll(); 
    } 
}); 
var mapStateToProps = function (state) { 
     return { 
      cars: state.carReducer.cars 
     } 
    }; 

    var mapDispatchToProps = function (dispatch) { 
     return { 
      actions: bindActionCreators(_.assign({}, carActions, apiActions), dispatch) 
     } 
    }; 

    module.exports = connect(mapStateToProps, mapDispatchToProps)(newReactComponent); 
` 

Antwort

0

Sie verspotten Funktion anschließen, können Sie das gewünschte Objekt (e) zurück, so dass Sie sie in der Testumgebung zugreifen können.

Auf diese Weise können Sie auf newReactComponent zugreifen und dann können Sie die Reaktionskomponente (mit seichtem Enzym) montieren.

Nach der Installation können Sie auf die Klassenmethoden zugreifen.

Etwas wie folgt aus:

const actions = {fetchAll: jest.fn()} 
 
const wrapper = shallow(<newReactComponent actions={actions} />); 
 
wrapper.instance().functionToBeTested(); 
 
expect(actions.fetchAll).toBeCalled();

ich eine ähnliche Frage here

beantwortet haben