2016-03-22 13 views
0

Bir tepki bileşeninde bir dom öğesinin tıklanmasını simüle etmeye çalışıyorum ve buna dayanarak bir casusun çağrıldığını iddia ediyorum. İşte testin ilgili bölümü (karma, mocha, Chai, Sinon kullanarak ama burada alakasız oldukça eminim):React Test Utils - Simüle edilmiş bir tıklama yapıldığında casus çağrılmıyor -

const selectSpy = sinon.spy(); 
const component = TestUtils.renderIntoDocument(<SomeComponent onSelect={selectSpy} />); 
TestUtils.Simulate.click(TestUtils.scryRenderedDOMComponentsWithTag(component, 'li')); 
expect(selectSpy.called).to.be.ok; 

ve burada tepki bileşenidir:

render() { 
    let { title , data, onSelect } = this.props; 
    console.log(this.props.onSelect); // This correctly logs out the spy 
    return (
     <div> 
     <ul>{data.map((row, i) => { 
      return <li onClick={this.handle.bind(this,row)} key={i}>{row.title}</li>; })} 
     </ul> 
     </div> 
    ) 
} 

handle(row) { 
    this.props.onSelect(row); 
} 

test çalışmaları ancak sonuç, "Gerçekliğin doğru olması beklenen yanlış" mesajıyla başarısız bir testtir. Kodda çok yanlış göremiyorum - hata yok ve casusum doğru şekilde geçti. Yapmam gereken başka bir şey var mı?

cevap

1

TestUtils.Simulate.click bir DOM öğesi bekler, ancak scryRenderedDOMComponentsWithTag bir dizi DOM öğesi döndürür.

deneyin bu kadar

TestUtils.Simulate.click(TestUtils.scryRenderedDOMComponentsWithTag(component, 'li')[0]); 
+0

için

TestUtils.Simulate.click(TestUtils.scryRenderedDOMComponentsWithTag(component, 'li')); 

değişen. Çok teşekkürler –

İlgili konular