2017-07-03 4 views
0

Ich habe eine einfache Komponente in React. Ich möchte die Methode in dieser Komponente testen, wenn der Benutzer auf die Schaltfläche klickt. Ich habe einen Test dafür, aber verpass 'es nicht.Testmethode in der Reaktionskomponente funktioniert nicht

Komponente:

import React, { Component } from 'react'; 
import PropTypes from 'prop-types'; 
import axios from 'axios'; 

class TestInvokingMethod extends Component { 
    onClick() { 
    } 
    render() { 
     return (
      <div> 
       <input id='buttonTest' type='button' value={10} onClick={this.onClick} /> 
      </div> 
     ); 
    } 
} 

export default TestInvokingMethod; 

Und Test dafür:

import React from 'react'; 
import { shallow } from 'enzyme'; 
import TestInvokingMethod from '../../components/TestComponent/TestInvokeMethod'; 

const component = shallow(
    <TestInvokingMethod /> 
); 

test('Testing invoke method',() => { 

    const mockFn = jest.fn(); 

    component.instance().onClick = mockFn; 
    component.update(); 
    component.find('#buttonTest').simulate('click'); 

    expect(component.instance().onClick.mock.calls.length).toBe(1); 
}); 
+0

Was ich meine ist, dass Simulieren ('Klick') nicht verwenden Scheinfunktion. –

+0

Ich habe eine Lösung gefunden. Ich habe nicht seicht, sondern aus der Enzymbibliothek genommen. Nach diesem Test ist nicht fehlgeschlagen und Scheinfunktion wird verwendet. –

Antwort

0

mit Versuchen Jest des SpyOn

const spy = expect.spyOn(wrapper.instance(), "onClick"); 
wrapper.update(); 
wrapper.find('#buttonTest').simulate('click'); 
expect(spy).toHaveBeenCalled(); 
Verwandte Themen