2016-11-14 2 views
1

Как мы тестируем обработчик кликов с помощью мелкой визуализации с использованием ферментаКак проверить обработчик событий с помощью фермента

class Example extends React.Component { 
    render() { 
    const { 
     message 
    } = this.props 
    return <Alert key={message.id} bsStyle={message.state} onDismiss={()=>this.handleAlertDismiss(message.id)}>{message.text}</Alert> 
    } 
    handleAlertDismiss = (id) = > { 
    console.log(id) 
    } 
} 

как мы тестируем функцию onDismiss, которая была добавлена ​​к Alert компоненту.

ответ

1

Создайте компонент и вызовите функцию увольнения следующим образом.

const log = jest.fn(); 
global.console = {log} 
example = shallow(<Example message={{id: 'test'}}/>); 
example.props('onDismiss')() //just find the dismiss prop and call the function 
expect(log).toHaveBeenCalledWith('test') 

Проблема с вашим примером в том, что нет ничего реального для тестирования. Чтобы он работал с вашим примером console.log, я макет console.log со шпионом, который можно протестировать, чтобы проверить, что он был вызван с правильным параметром.

+0

Да, я на самом деле не был уверен, как бы я назвал onDismiss, если бы это было похоже на {message.text} вместо обратный вызов метода рендеринга, я бы проверил wrapper.instance(). handleAlertDismissed. Мое намерение было не ablout console.log .sorry, если это было неправильно. – Kamaraju

+0

Хорошо, но на ваш вопрос ответили? Обычно вы просто ищете свой компонент, который находит опору и называете ее. Вы также можете использовать 'simulate', который делает в основном то же самое. http://airbnb.io/enzyme/docs/api/ShallowWrapper/simulate.html –

Смежные вопросы