我对 Koin 和“androidTest”有疑问。因为 androidTest 启动应用程序我不需要在测试中自己启动 Koin。
现在我需要注入一个模拟服务。问题是,我在单例类中使用 get() 注入方法内部,这不能通过构造函数注入工作,因为注入的对象可以有不同的实现。
我的想法是用这种方式声明我需要什么:
declare {
factory<Webservice>(override = true) { mockWebservice }
}
但这将应用于所有测试。这就是为什么另一个检查是否注入了正确的类的测试失败的原因。
我还尝试在 @After 方法中使用 stopKoin()、startKoin(listOf(appModule)),但是在以后的测试中依赖注入不再起作用。
有没有办法只为一个测试声明模拟?