2015-04-21 2 views
0

если у меня есть дочерний компонент, который имеет событие onclick, которое, в свою очередь, вызывает родительский обработчик событий, что лучше всего подходит для тестирования? В моем случае текстовое значение кнопки изменяется, когда пользователь нажимает на нее - это обрабатывается в this.props.myEvent.реагировать jest unit тестирование дочерних компонентов с событиями

Моего блок тест работает при тестировании начального значения

expect(button.getDOMNode().textContent).toEqual('startValue'); 

, но как я создать модульный тест для того, когда пользователь нажимает на кнопку, и значение кнопки обновляются до определенного значения?

В моем случае у меня есть кнопка:

var React = require('react'); 

module.exports = React.createClass({ 
    myEvent: function(a,b){ 
    this.props.myEvent(a, b); 
    }, 
    render: function() { 
    return (
     <button name="myButton" id={this.props.id} onClick={this.myEvent.bind(this.props.a,this.props.b)}>{this.props.value}</button> 
    ) 
    } 
}); 

благодаря

ответ

0

Вы можете имитировать щелчок с TestUtils аддона:

React.addons.TestUtils.Simulate.click(button.getDOMNode()); 
+0

так в моем случае, значение кнопки изменяется после щелчка пользователя. В моем модульном тесте я проверяю начальное значение текста кнопок, используя «expect (button.getDOMNode(). TextContent) .toEqual ('initialValue'); ' и тогда я сделаю так, как вы предложили (.Simulate.Click()), однако, когда я проверяю значение текста кнопок после имитированного щелчка, значение остается неизменным. – pgfitzpatrick