Tüm etkinliklerim için testler yapıyorum (ve tabii ki diğer her şey), ancak testin nasıl yapıldığına dair bir kayıp yaşıyorum bu.props.onClick (bu) bir alt bileşende çağrıldı.React's this.props.onClick (this) Jest'te arama yaparken tam olarak ne test etmeliyim?
Çocuğum bileşeni aşağıdaki kodu vardır:
closeModal: function() {
this.props.onClick(this);
},
render: function() {
return (
<i className="close-icon" onClick={this.closeModal}></i>
)
}
ve ebeveyn şöyle kendisine dinliyor:
onCloseModal: function() {
this.replaceState({
modalStatus: 'hidden'
});
},
render: function() {
return (
<QuestionModal modalStatus={this.state.modalStatus} onClick={this.onCloseModal} />
)
}
Ben ebeveynin click olayını nasıl test bende biliyoruz nasıl Testlerde de çocuğun düğme tıklatma olayını çağırın, ancak tam olarak neyi test ettiğimi bilmiyorum.
Eğer Sinon ve Jasmine kullansaydım, closeModal yöntemini koyar ve çağrıldığını kontrol ederdim. Bunu Jest ile yapabilir miyim ve eğer öyleyse tam olarak nasıl?
GÜNCELLEME
Ben @ PhilVarg en yanıta göre testi yazma denedim ama closeModalalay etmek mümkün değilim çok uzak alamıyorum. çağrılacak Beklenen Fonksiyonu ile
var closeIcon,
myMock = jest.genMockFunction();
form = TestUtils.renderIntoDocument(
<QuestionForm />
);
form.closeModal = myMock;
closeIcon = TestUtils.findRenderedDOMComponentWithClass(form, 'close-icon');
TestUtils.Simulate.click(closeIcon);
expect(form.closeModal).toBeCalled();
testi hataları:
İşte benim test. ve closeModal alaylı değil ama hala çalışıyor (Şu anda bir konsol günlüğüm var). Bütün öğleden sonra üzerinde çalıştım ama anlayamadım. Herhangi bir yardım çok takdir edilecektir.
Sadece durumun değiştirildiğini denetlerim. –
Evet, ebeveyn bileşeninde bunu kontrol ediyorum ancak çocuk bileşeni üzerindeki tıklamanın yapması gerekenleri de test etmek istiyorum. – alengel