我尝试为支持架构组件生命周期事件的函数添加单元测试。为了支持生命周期事件,我为该函数添加了@OnLifecycleEvent
注释,当发生该事件时,我想让该函数执行某些操作。
一切都按预期工作,但我想创建一个单元测试来检查当预期事件发生时我的函数是否运行。
public class CarServiceProvider implements LifecycleObserver {
public void bindToLifeCycle(LifecycleOwner lifecycleOwner) {
lifecycleOwner.getLifecycle().addObserver(this);
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onClear() {
Log.i("CarServiceProvider", "onClear called");
}
}
我尝试模拟LifecycleOwner并创建新的LifecycleRegistery来更改生命周期观察者的状态,但我没有成功。
当状态改变时,如何测试我的onClear()
函数是否被调用?
lifecycle
的类型是LifecycleRegistry
,但是bindToLifeCycle
接受的是一个LifecycleOwner
。 - tir38lifecycleOwner.getLifecycle()
,因此传递一个lifecycle
可能是有意义的。 - Raz