基本上当组件挂载时,我有一个事件监听器监听 resize 事件。它切换 isMobileView 状态,然后将其作为 prop 传递给子组件。 因此,这必须有效并进行测试。 我在测试方面相对较新,正在尝试找到一种方法,可以编写一个测试,调整窗口大小,并使所有逻辑发生,并测试它是否按照预期执行。
以下是代码 -
componentDidMount() {
this.setMobileViewState()
window.addEventListener('resize', this.setMobileViewState.bind(this));
}
setMobileViewState() {
if(document.documentElement.clientWidth <= this.props.mobileMenuShowWidth) {
this.setState({ isMobileView: true })
} else {
this.setState({ isMobileView: false })
}
}
我知道代码是有效的,但我想为它编写一个测试。基本上只需要确保状态正确更改的东西。
resizeBy
是有意义的,但Jest没有实现它,而innerWidth
不是只读的。 - Chris