lateinit属性主持人还没有被EasyMVP,Robolectric和Kotlin初始化
尝试使用Robolectric测试正在使用EasyMvp的活动时遇到问题。 所有的课程都是用Kotlin写的。
这是一个活动的开始:
@ActivityView(layout = R.layout.activity_access, presenter = AccessPresenterImpl::class) class AccessActivity : BaseActivity(), AccessView { @Presenter lateinit var presenter: AccessPresenter override fun providePresenter(): BasePresenter? { return presenter }
在onStart上,每个活动都在演示者中初始化临时演员。
我试图在我的应用程序中介绍Robolectric测试。
var activity: AccessActivity? = null var loginEditText: EditText? = null var passwordEditText: EditText? = null @Before fun initData() { activity = Robolectric.setupActivity(AccessActivity::class.java) loginEditText = activity?.findViewById(R.id.loginEditText) passwordEditText = activity?.findViewById(R.id.passwordEditText) }
但是在运行测试时,我总是得到错误:
kotlin.UninitializedPropertyAccessException: lateinit property presenter has not been initialized
我认为这是Robolectric注释处理的问题。 有没有解决方案?