在我看来,使用 Robolectric 的生命周期实用程序(以 开头Robolectric.buildActivity()
)构建 Activity 单元测试和使用 Mockito 间谍监视同一个 Activity 是相互排斥的。
因为buildActivity()
控制 Activity 对象的构造,所以为 Activity 添加 spy 的唯一位置是在调用buildActivity()
. 但是,在事后添加间谍时,间谍无法正常工作。
在监视生命周期方法的副作用时尤其如此,ActivityController
例如create()
,start()
和resume()
. 我认为这是因为 ActivityController 持有对“真实” Activity 对象的引用,而不是后来添加的间谍。
那么有什么方法可以监视正在使用 Robolectric 进行单元测试的 Activity,以便间谍在通过 Robolectric 调用生命周期方法时正常工作ActivityController
?