我正在尝试在我的应用程序中编写espresso测试。在应用程序中,我使用dagger 2和架构组件(LiveData等)。该测试具有帮助我为测试活动创建假注射的功能。当我用它来模拟ManViewModel它没有问题,我可以运行测试。但是当我想为ViewModelProvider.Factory设置一个模拟值时,测试会在MainActivity中抛出一个错误:ViewModelProviders.of(th ... iewModelImpl :: class.java)不能为null
我已经调试了测试,当我分配模拟值时,它不是null,而在主活动中,值不是null,而是钢,我得到了错误。
一些帮助将不胜感激。
MainActivity的代码:
main()
MainActiviyTest的代码:
class MainActivity : BaseActivity(), AnimateFactsImage {
@Inject
lateinit var viewModelFactory: ViewModelProvider.Factory
@Inject
lateinit var mainViewModel: MainViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
mainViewModel = ViewModelProviders.of(this, viewModelFactory).get(MainViewModel::class.java)
// Here is the error: ViewModelProviders.of(th…iewModelImpl::class.java) must not be null
}
}