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
获取活动
,直到活动启动后手动停止