当测试单击按钮时,我在 Detox 中收到以下错误,单击有效,但在组件由于状态更改而重新呈现后,测试奇怪地想再次单击按钮,但由于按钮不在查看,测试失败。
测试失败:等待 [com.wix.detox.reactnative.idlingresources.AnimatedModuleIdlingResource] 变得空闲超时
我的测试脚本:
await element(by.id("post-1-cm")).tap();
await waitFor(element(by.id("comment-error")))
.not.toExist()
.withTimeout(5000);
按钮组件:
<AppButton
onPress={() => toggleComments(true)}
disabled={disabled || submitting}
inverted
testID={`${testID}-cm`}
buttonStyles={styles.button}>
单击按钮时渲染的组件代码,toggleComments 将 showComments 状态更改为 True:
{showComments && (
<CommentsModal
reloadPosts={props.reload}
visible={showComments}
blockUser={blockUser}
close={() => toggleComments(false)}
/>
)}
排毒
android/espressoapi/UIDevice.js
确实有waitForIdle(element)
功能。
InteractionManager
:
InteractionManager.runAfterInteractions(() => {
// ...long-running synchronous task...
element(by.id("post-1-cm")).tap();
});
这样,您可以检查这是否足以让您的
AnimatedModuleIdlingResource
闲置 first,然后再进行休息。