Dopo l'aggiornamento Reagire da 0.13
a v0.14.0-beta3
, ho avuto un sacco di avvertimenti come questo nel mio test di unità:Come verificare gli oggetti di un nodo DOM in un test di unità in React 0.14?
Warning: ReactDOMComponent: Do not access .props of a DOM node; instead, recreate the props as `render` did originally or read the DOM properties/attributes directly from this node (e.g., this.refs.box.className). This DOM node was rendered by `Button`.
Essi sono causati da mio test di unità, ad esempio:
it('should render to a <a> when href is given', function() {
var button = TestUtils.renderIntoDocument(<Button className="amazon" href="#">Hello</Button>);
expect(TestUtils.scryRenderedDOMComponentsWithTag(button, 'button').length).toBe(0);
expect(TestUtils.scryRenderedDOMComponentsWithTag(button, 'a').length).toBe(1);
expect(TestUtils.scryRenderedDOMComponentsWithTag(button, 'a')[0].props.href).toBe('#');
expect(TestUtils.scryRenderedDOMComponentsWithTag(button, 'a')[0].props.className).toBe('amazon Button');
});
come si fa Ho risolto questo? C'è qualche pratica raccomandata per testare elementi DOM come questo?
Non dovrebbe essere necessario per verificare il valore dei puntelli di questo tipo, come si sa esattamente cosa si sta passando. Il componente stesso non può cambiare il valore degli oggetti di scena, quindi gli oggetti di scena saranno sempre ciò che gli darai. – Tom
Sto controllando i puntelli di un nodo figlio (quindi non quelli appena passati), quindi questo ha senso. – mik01aj