如何在Android测试代码中获取对应用程序的引用
我有以下ViewModel课程:如何在Android测试代码中获取对应用程序的引用,android,unit-testing,kotlin,Android,Unit Testing,Kotlin,我有以下ViewModel课程: @Singleton class CatalogViewModel @Inject constructor(application: Application, private val catalogService: CatalogService, private val databaseManager: DatabaseManager ) : AndroidViewModel(app
@Singleton
class CatalogViewModel
@Inject constructor(application: Application,
private val catalogService: CatalogService,
private val databaseManager: DatabaseManager
) : AndroidViewModel(application) {
}
我有一门考试课:
public class CatalogViewModelTest {
private CatalogViewModel viewModel;
@Mock
private CatalogService service;
@Mock
private DatabaseManager databaseManager;
@Before
public void setup() throws Exception {
MockitoAnnotations.initMocks(this);
viewModel = Mockito.spy(new CatalogViewModel(????, service, databaseManager));
}
}
我想知道如何在我的测试代码中获得对应用程序的引用。在应用程序本身中,这当然很容易。根据干净的体系结构方法,您的ViewModel代码不必包含任何与框架相关的代码。特别是应用方面的参考。 CatalogService和DatabaseManager不是演示文稿的一部分。创建UseCase或Interactor,将其注入viewModel,使用存储库模式,将其注入UseCase或Interactor,将CatalogService和DatabaseManager注入存储库,并在其中执行所有必要的工作 此链接可能会有所帮助: 良好的体系结构将使您的代码可测试。
希望能有所帮助:)Try@Mock私有应用程序锁;