Sto provando a testare un componente che eredita il contesto da un componente radice, senza caricare/eseguire il rendering di tutto dalla radice in basso. Ho provato e cercato degli esempi su come prendere in giro il contesto ma non riesco a trovare nulla (almeno questo non usa il jest).React js - Come simulare il contesto durante il test del componente
Ecco un esempio semplificato di ciò che sto cercando di ottenere.
C'è un modo semplice in cui posso fingere di reagire a Ec.context per il test?
/**
* Root Element that sets up & shares context
*/
class Root extends Component {
getChildContext() {
return {
language: { text: 'A String'}
};
}
render() {
return (
<div>
<ElWithContext />
</div>
);
}
}
Root.childContextTypes = { language: React.PropTypes.object };
/**
* Child Element which uses context
*/
class ElWithContext extends React.Component{
render() {
const {language} = this.context;
return <p>{language.text}</p>
}
}
ElWithContext.contextTypes = { language: React.PropTypes.object }
/**
* Example test where context is unavailable.
*/
let el = React.createElement(ElWithContext)
element = TestUtils.renderIntoDocument(el);
// ERROR: undefined is not an object (evaluating 'language.text')
describe("ElWithContext",() => {
it('should contain textContent from context',() => {
const node = ReactDOM.findDOMNode(element);
expect(node.textContent).to.equal('A String');
});
})
hanno a vedere questo modulo NPM ?: https://www.npmjs.com/package/react-stub-context – JordanHendrix
Grazie @Omarjmh, ho visto che anche se assunto in passato a causa della Jest esempio. Ma penso che questa ipotesi possa essere errata. – patnz