Android SDK版本24 - 检索AssetManager时出现问题

时间:2016-10-15 21:03:31

标签: java android unit-testing

我正在尝试创建一个测试用例来测试一个以AssetManager作为参数的静态方法。但是,我无法获得AssetManager类,因为每个在线博客都告诉我使用已经在sdk版本24中弃用的类。我甚至尝试使用Mockito类来模拟我的主要活动(不确定那是怎么回事打算使用)并返回一个null AssetsManager。

如何在单元测试中检索我的项目的AssetsManager?

1 个答案:

答案 0 :(得分:0)

使用AssetManager的测试应放在androidTests中(如评论中所述)。然后你可以做这样的事情

@RunWith(AndroidJUnit4.class)
public class AssetManagerTests {
    private Instrumentation mInstrumentation;

    @Before
    public void setUp() throws Exception {
        mInstrumentation = InstrumentationRegistry.getInstrumentation();
    }

    @Test
    public final void testAssets() throws IOException {
        final AssetManager assetManager = mInstrumentation.getTargetContext().getAssets();
        assetManager.open("someappfile");
    }
}

在这种情况下,测试是从assets打开一个文件,但你可以做任何你想做的事情。 请注意,文件名为someappfile,以强调测试正在访问应用资产而非测试资产。