2014-07-14 67 views
13

Doğrulama durum iletilerimi test edebilmem için bir kullanıcıyı bir metin kutusuna reaktjimleri kullanarak simüle edebilmek istiyorum.Metin girişini reactJs ile simüle etme TestUtils

Ben

keyUp

üzerinde doğrular bir tepki bileşeni Aşağıda ive çalıştı ne basit bir örnek var.
nameInput.props.value = 'a'; 
React.addons.TestUtils.Simulate.keyUp(nameInput); 
React.addons.TestUtils.findRenderedDOMComponentWithClass(component, 'has-error'); 

Bu doesnt

Ben de doğrulayıcı

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

bu doesnt içinde hata ayıklama bağlı metin kutusu değerini değiştirmek gibi görünüyor.

birisi bana doğru yolda gösterebilir misiniz, ikinci ben

cevap

25

etrafında bulmak (http://facebook.github.io/react/docs/test-utils.html) simüle Önce bana mantıklı (daha sonra sahte bir olay gerçek metin kutusu değerini ayarlayın) olabilir belgelerle satır içi olduğu nameInput.props.value = 'a'; ayarlanarak, aslında öğenizdeki değeri güncelleştirmiyorsunuz.

React.addons.TestUtils.Simulate.change(nameInput, { target: { value: 'a' } }); veya gerçek değeri değiştirmeyi simüle etmek için benzer bir şey kullanmalısınız.

+3

Simülasyon hakkında daha kapsamlı bir dokümantasyon var mı? Sadece birkaç örnek bulabilirdim ve "özellikler" hakkında daha fazla bilgi edinmek istiyorum. Neden "hedef", neden "değer"? Başka hangi seçenekler mevcut? – diogovk

+1

Sadece bu sayfayı elden biliyorum: http://facebook.github.io/react/docs/test-utils.html. Bunun dışında, tarayıcıda olaylar kapalı olduğunda değiştirilen yerel değerleri basitçe takip ettiğime eminim. – jonowzz

+1

Ve bu yerel değerlerin belgelerini nerede bulabilirim? – diogovk

1

Bu sözdizimi benim için daha iyi çalıştığını bulundu:

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

ikinci satır metin, '[email protected]ail.com' ile girdi günceller. Son satır değişikliği tetikler.