2014-07-14 13 views
13

Tôi muốn có thể mô phỏng người dùng nhập vào một hộp văn bản bằng cách sử dụng reactjs để tôi có thể kiểm tra thông báo trạng thái xác thực của mình.Mô phỏng mục nhập văn bản với reactJs TestUtils

Tôi có thành phần phản ứng xác thực trên keyUp

Dưới đây là ví dụ đơn giản về những gì ive đã thử.

nameInput.props.value = 'a'; 
React.addons.TestUtils.Simulate.keyUp(nameInput); 
React.addons.TestUtils.findRenderedDOMComponentWithClass(component, 'has-error'); 

doesnt này dường như thay đổi giá trị của hộp văn bản ràng buộc khi tôi gỡ lỗi trong trình xác thực sẽ

React.addons.TestUtils.Simulate.keyUp(nameInput, {key: 'a'}); 
React.addons.TestUtils.findRenderedDOMComponentWithClass(component, 'has-error'); 

doesnt này một trong hai.

Có thể ai đó chỉ cho tôi đi đúng hướng, thứ hai là nội tuyến với các tài liệu tôi có thể tìm xung quanh mô phỏng (http://facebook.github.io/react/docs/test-utils.html), là người đầu tiên có ý nghĩa đối với tôi (thiết lập giá trị textbox thực tế sau đó giả một sự kiện)

Trả lời

25

Bằng cách đặt nameInput.props.value = 'a';, bạn không thực sự cập nhật giá trị trong thành phần của mình.

Bạn nên sử dụng React.addons.TestUtils.Simulate.change(nameInput, { target: { value: 'a' } }); hoặc một cái gì đó tương tự như mô phỏng sửa đổi giá trị thực tế.

+3

Có tài liệu toàn diện hơn về Mô phỏng không? Tôi chỉ có thể tìm thấy một vài ví dụ và tôi muốn biết thêm về "thông số kỹ thuật". Tại sao "nhắm mục tiêu", tại sao "giá trị"? Các tùy chọn khác có sẵn là gì? – diogovk

+1

Tôi chỉ biết về trang này: http://facebook.github.io/react/docs/test-utils.html. Khác hơn là tôi khá chắc chắn nó chỉ đơn giản là sau các giá trị bản địa mà có được thay đổi khi các sự kiện được bắn ra trong trình duyệt. – jonowzz

+1

Và tôi sẽ tìm tài liệu về các giá trị gốc đó ở đâu? – diogovk

1

tôi thấy rằng cú pháp này làm việc tốt hơn cho tôi:

const emailInput = component.refs.userEmailInput; 
    emailInput.value = '[email protected]'; 
    Simulate.change(component.refs.userEmailInput); 

Dòng thứ hai cập nhật các đầu vào với các văn bản, '[email protected] Dòng cuối cùng kích hoạt thay đổi.

Các vấn đề liên quan