React Test Utils permite fazer uma renderização superficial de um componente.
Isso é muito útil para escrever testes de unidade de componentes.
Infelizmente, essa solução é muito limitada.
Por exemplo – o render()
método não retorna a instância dos componentes.
É possível recuperá-lo – após a instância de renderização do componente ser armazenada no _instance._instance
atributo de ReactShallowRenderer
.
const renderer = TestUtils.createRenderer();
renderer.render(<MyComponent />);
const component = renderer._instance._instance;
Observe que isso pode não funcionar em todas as situações. Meu palpite (não tentei) é que essa solução alternativa irá falhar quando mais elementos forem renderizados (por exemplo renderer.render(<MyComponent/><div/>
).
ShallowRenderer não chama componentDidMount
ou componentWillUnmount
métodos.
É possível chamá-los quando a instância do componente é obtida do renderizador.
Se o estado do componente mudar, o renderer.getRenderOutput()
método incluirá as mudanças.
const renderer = TestUtils.createRenderer();
renderer.render(<MyComponent />);
const component = renderer._instance._instance;
component.componentDidMount();
component.setState({
// ...
});
const output = renderer.getRenderOutput();
Isso deve funcionar no React 0.14.