Tôi đang thử nghiệm một thành phần kế thừa ngữ cảnh từ thành phần gốc, mà không tải/hiển thị mọi thứ từ gốc xuống. Tôi đã thử và tìm kiếm các ví dụ về cách giả lập bối cảnh nhưng không thể tìm thấy bất cứ điều gì (ít nhất là không sử dụng jest).React js - Làm thế nào để thử bối cảnh khi thử nghiệm thành phần
Dưới đây là một ví dụ đơn giản về những gì tôi đang cố gắng đạt được.
Có cách nào đơn giản để tôi có thể thử phản ứngEl.context cho thử nghiệm không?
/**
* 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');
});
})
đã thấy mô-đun NPM này ?: https://www.npmjs.com/package/react-stub-context – JordanHendrix
Cảm ơn @Omarjmh, tôi đã thấy rằng mặc dù giả định nó được sử dụng đùa vì sự thí dụ. Nhưng tôi nghĩ rằng giả định có thể không chính xác. – patnz