luy
Version:
所谓类```React```框架就是**和React用法一模一样**的框架。其实当初制造这个框架的目的是为了能更好的学习React内部结构,了解其原理而制作的玩具。但是随着框架的渐渐成长,代码越来越多,我还是决定将其发展下去. 
96 lines (89 loc) • 2.84 kB
JavaScript
import React from "../dist/index";
import getTestDocument from "./getTestDocument";
import ReactTestUtils from "../lib/ReactTestUtils";
import ReactShallowRenderer from "../lib/ReactShallowRenderer";
describe("ReactComponent", function () {
it("子节点是列表", () => {
let ummount = []
class Life extends React.Component {
componentWillUnMount() {
ummount.push(this)
}
render() {
return <div>asdasdsa</div>
}
}
class Father extends React.Component {
state = {
check: 0
}
componentDidMount() {
this.setState({
check: 1
})
}
render() {
return (
<div>
{
this.state.check == 1 ? 1
:
<div>
<Life />
<Life />
<Life />
<Life />
<Life />
</div>
}
</div>
)
}
}
ReactTestUtils.renderIntoDocument(<Father />);
expect(ummount.length).toBe(5)
});
it("子节点里面有子节点", () => {
let ummount = []
class Life extends React.Component {
componentWillUnMount() {
ummount.push(this)
}
render() {
return <div>{this.props.children}</div>
}
}
class Father extends React.Component {
state = {
check: 0
}
componentDidMount() {
this.setState({
check: 1
})
}
render() {
return (
<div>
{
this.state.check == 1 ? 1
:
<div>
<Life >
<Life />
<Life />
<Life />
<Life >
<Life />
</Life>
</Life>
</div>
}
</div>
)
}
}
ReactTestUtils.renderIntoDocument(<Father />);
expect(ummount.length).toBe(6)
});
})