如何在Android测试代码中获取对应用程序的引用

如何在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

我有以下ViewModel课程:

@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私有应用程序锁;