在Android应用程序中访问JUnit测试的核心Java模块中的应用程序上下文

在Android应用程序中访问JUnit测试的核心Java模块中的应用程序上下文,android,junit4,Android,Junit4,我有一个Android应用程序,它包含多个java模块,意味着非Android模块。 一个模块是核心模块,它不依赖于Android应用程序模块。但它在运行时需要应用程序上下文 我需要在这个核心模块中创建一个JUnit测试用例,它需要Android应用程序上下文。我可以通过在IntelliJ Idea的核心模块中添加Android应用程序模块的依赖项来实现这一点,方法是转到项目设置 但对于JUnit测试,我不想放置依赖项。有没有办法模拟这个应用程序上下文 如果有人需要更多说明,请告诉我。您可以使用

我有一个Android应用程序,它包含多个java模块,意味着非Android模块。 一个模块是核心模块,它不依赖于Android应用程序模块。但它在运行时需要应用程序上下文

我需要在这个核心模块中创建一个JUnit测试用例,它需要Android应用程序上下文。我可以通过在IntelliJ Idea的核心模块中添加Android应用程序模块的依赖项来实现这一点,方法是转到项目设置

但对于JUnit测试,我不想放置依赖项。有没有办法模拟这个应用程序上下文


如果有人需要更多说明,请告诉我。

您可以使用
Mockito
模拟下面的上下文,并使用它:

private Context context;

context = Mockito.mock(Context.class);

您可以使用
Mockito
模拟上下文,如下所示:

private Context context;

context = Mockito.mock(Context.class);

当上下文不在类路径中时,纯java模块中的类如何与上下文一起工作?@Eugen看到下面的答案。当上下文不在类路径中时,纯java模块中的类如何与上下文一起工作?@Eugen看到下面的答案。是的,它可以工作。+1。但是为什么我们不能对这个对象调用getAssets()。我提到了,但是没有用。这个怎么样@Meenal:我有错误。无法模拟/间谍类android.content.res.AssetManager Mockito无法模拟/间谍以下内容:-最终类-匿名类-原语types@Eugen:不满足requirement@AnishMittal我建议您使用Robolectric,如果它符合您的要求..因为它为所有人提供阴影类..所以您不必模仿..是的,它起作用了。那是+1。但是为什么我们不能对这个对象调用getAssets()。我提到了,但是没有用。这个怎么样@Meenal:我有错误。无法模拟/间谍类android.content.res.AssetManager Mockito无法模拟/间谍以下内容:-最终类-匿名类-原语types@Eugen:不满足requirement@AnishMittal如果符合您的要求,我建议您使用Robolectric。因为它为所有人提供了阴影类。所以您不必模仿。。