与Mockito间谍的Robolectric buildActivity()?

esp*_*ess 15 android unit-testing mockito spy robolectric

在我看来,使用Robolectric的生命周期实用程序(从开始Robolectric.buildActivity())构建活动单元测试并使用Mockito 间谍监视相同的Activity是相互排斥的.

因为buildActivity()控制Activity对象的构造,所以为Activity添加间谍的唯一地方是在调用之后buildActivity().然而,在事后添加间谍时,间谍无法正常运作.

间谍的副作用时,这是特别真实的ActivityController 生命周期方法如create(),start()resume().我假设这是因为ActivityController持有对"真正的"Activity对象的引用,而不是后来添加的间谍.

那么有没有办法窥探一个使用Robolectric进行单元测试的Activity,这样当通过Robolectric调用生命周期方法时,间谍可以正常工作ActivityController

dsc*_*ten 1

至少对于活动不是被测试对象,而只是托管被测试片段的虚拟活动的情况,可以将模拟注入到测试活动中,该模拟可以通过之间的通信接口验证与活动的交互片段和活动(遵循http://developer.android.com/training/basics/fragments/communicating.html)。