在Jest中是否可以运行在所有其他测试完成后运行的清理或拆卸任务?类似于setupFiles允许在任何测试运行之前设置任务的方式.无论测试是否有任何错误,如果这也可以运行,则可以获得奖励积分.
放置afterAll(() => {})在文件的顶层(在任何描述函数之外)仅在该特定文件的测试完成后运行.
用例是我有很多测试文件可以在开发数据库中创建用户,我不想让每个测试文件负责清理和删除用户.编写测试时也会发生错误,因此如果发生清理而不考虑哪种错误更可取.
给出一个简单的React Native视图结构,如下所示:
我希望能够检测到顶层的所有水龙头(TouchableWithoutFeedback),甚至可以检测到其中一个TouchableHighlight onPress处理程序的水龙头.看起来如果用户点击其中一个TouchableHighlights,则没有事件传播到TouchableWithoutFeedback.
在这个简单的视图中,让TouchableHighlights采用与顶级组件对话的处理程序是很简单的,但是我的实际视图太复杂了,我必须让每个子视图传回回拨信息.
根据RN Github(https://github.com/facebook/react-native/issues/6796)的这个问题,似乎这可能不是支持的功能,但我只是想确认一下.
FWIW,我目前只为Android开发.
我想卸载一个反应组件,它属于一个包含三个组件的父组件.父组件具有此渲染功能:
render: function () {
return (
<div className={classes}>
<Navbar ref="navbar"/>
<Home ref="home"/>
<Footer ref="footer"/>
</div>
),
handleNavbarClick: function () {
// remove Home
}
Run Code Online (Sandbox Code Playgroud)
如果用户然后单击导航栏中的链接并且我想要卸载Home组件,我该怎么做?似乎我唯一的选择是做这样的事情(取自react.js:删除一个组件),但这似乎非常严重:
render: function () {
var home = this.state.remove_home ? null : <Home ref="home />
return (
<div className={classes}>
<Navbar ref="navbar"/>
{home}
<Footer ref="footer"/>
</div>
),
handleNavbarClick: function () {
this.setState({remove_home: true});
}
Run Code Online (Sandbox Code Playgroud)
这是做适当的反应方式吗?
reactjs ×2
android ×1
jasmine ×1
jestjs ×1
node.js ×1
react-jsx ×1
react-native ×1
reactjs-flux ×1
unit-testing ×1