visual unitarias unit tutorial test studio pruebas mvc hacer español como unit-testing reactjs chai enzyme

unit testing - unitarias - ¿Cómo hacer una prueba unitaria de un método de reacción del componente?



pruebas unitarias java (3)

Estoy tratando de hacer una prueba unitaria de mi componente reactjs:

import React from ''react''; import Modal from ''react-modal''; import store from ''../../../store'' import lodash from ''lodash'' export class AddToOrder extends React.Component { constructor(props) { super(props); this.state = {checked: false} //debugger } checkBoxChecked() { return true } render() { console.log(''testing=this.props.id'',this.props.id ) return ( <div className="order"> <label> <input id={this.props.parent} checked={this.checkBoxChecked()} onChange={this.addToOrder.bind(this, this.props)} type="checkbox"/> Add to order </label> </div> ) } } export default AddToOrder;

Para empezar, ya estoy luchando para afirmar el método checkBoxChecked:

import React from ''react-native''; import {shallow} from ''enzyme''; import {AddToOrder} from ''../app/components/buttons/addtoorder/addtoorder''; import {expect} from ''chai''; import {mount} from ''enzyme''; import jsdom from ''jsdom''; const doc = jsdom.jsdom(''<!doctype html><html><body></body></html>'') global.document = doc global.window = doc.defaultView let props; beforeEach(() => { props = { cart: { items: [{ id: 100, price: 2000, name:''Docs'' }] } }; }); describe(''AddToOrder component'', () => { it(''should be handling checkboxChecked'', () => { const wrapper = shallow(<AddToOrder {...props.cart} />); expect(wrapper.checkBoxChecked()).equals(true); //error appears here }); });

`` `

¿Cómo puedo hacer una prueba unitaria del método en el componente? Este es el error que estoy recibiendo:

TypeError: Cannot read property ''checked'' of undefined


Ampliación de la respuesta anterior. Si tiene un componente conectado (Redux), pruebe el siguiente código:

const store=configureStore(); const context = { store }; const wrapper = shallow( <MyComponent, { context }, ); const inst = wrapper.dive().instance(); inst.myCustomMethod(''hello'');


Para aquellos que encuentren que la respuesta aceptada no funciona, intente usar .dive() en su envoltura superficial antes de usar .instance() :

expect(wrapper.dive().instance().somePrivateMethod()).toEqual(true);

Referencia: Métodos de prueba de componentes con enzima.


Ya casi has llegado. Solo cambia tu expectativa a esto:

expect(wrapper.instance().checkBoxChecked()).equals(true);

Puede ir a través de este enlace para obtener más información sobre los métodos de prueba de componentes utilizando enzimas.