Kökteki her şeyi yüklemeden/oluşturmadan, bir kök bileşeninden içeriği miras alan bir bileşeni test etmeye çalışıyorum. Bağlamı nasıl yapacağımıza dair örnekler denedim ve aradım ama hiçbir şey bulamadım (en azından bu jest kullanmayan).React js - Bileşeni test ederken Bağlam nasıl yapılır?
İşte başarmaya çalıştığım şeyin basitleştirilmiş bir örneğidir.
Test için reactEl.context ile uğraşmamın basit bir yolu var mı?
/**
* 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');
});
})
bu npm modülü ?: https://www.npmjs.com/package/react-stub-context – JordanHendrix
Teşekkür @Omarjmh bakınız, ben olsa nedeniyle jest kullanılan üstlendi şunu gördün mü örnek. Ama bence bu varsayım yanlış olabilir. – patnz