Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓&;雄激素JUnit4。如何处理,;测试不确定生命周期循环错误_Java_Android_Integration Testing_Android Lifecycle_Android Junit - Fatal编程技术网

Java 安卓&;雄激素JUnit4。如何处理,;测试不确定生命周期循环错误

Java 安卓&;雄激素JUnit4。如何处理,;测试不确定生命周期循环错误,java,android,integration-testing,android-lifecycle,android-junit,Java,Android,Integration Testing,Android Lifecycle,Android Junit,与视图事件的无限循环相关的错误是这个问题的主题。这样的循环不会抛出StackOverflowerError,因为它们执行得非常频繁,但不是递归的。该代码错误的一个示例可能是自定义视图的onDraw内部调用invalidate() 默认情况下,AndroidJUnit4在启动测试活动后等待应用程序空闲,然后执行验证。但在无限生命周期的情况下,将无法实现空闲循环,测试将失败,错误为java.lang.RuntimeException:无法在45秒内启动intent intent。可能主线程没有在合理

与视图事件的无限循环相关的错误是这个问题的主题。这样的循环不会抛出
StackOverflowerError
,因为它们执行得非常频繁,但不是递归的。该代码错误的一个示例可能是自定义视图的
onDraw
内部调用
invalidate()

默认情况下,AndroidJUnit4在启动测试活动后等待应用程序空闲,然后执行验证。但在无限生命周期的情况下,将无法实现空闲循环,测试将失败,错误为
java.lang.RuntimeException:无法在45秒内启动intent intent。可能主线程没有在合理的时间内空闲?
这样的错误不是声明性的,测试必须等待很长时间

比如说,, 我应该测试
onLayoutChildren
LayoutManager
方法。默认情况下,在正确实现的情况下,该方法在启动后执行两到三次,仅此而已。这个测试通过了
verify(spy,atMost(3)).onLayoutChildren(any(RecyclerView.Recycler.class)、any(RecyclerView.State.class))
,其中
spy
LayoutManager
的间谍。行为可能已损坏,
onLayoutChildren
进入无限循环。如果测试中出现错误,它将停止


我正在努力实现的目标。可能的变体是运行测试和应用程序一段时间(比如500毫秒左右),然后中断应用程序并在之后执行验证。没有任何空闲连接

Ps:我无法从
ActivityTestRule
获取
活动
,直到活动启动后手动停止。Ps:我无法从
ActivityTestRule
获取
活动
,直到活动启动后手动停止