在我的 Android 测试中访问图像

发布于 2024-09-18 01:16:49 字数 198 浏览 7 评论 0原文

我正在开发一个 Android 应用程序。它有相应的规格/测试应用程序。作为一些测试的一部分,我需要从资产文件夹中选取一个图像并为其计算 SHA-1。 只要我能挑选图像,我就可以计算 SHA。由于测试在模拟器上运行;我不确定如何在测试中选择图像。

有谁知道我该怎么做。可能有或没有 AssetManager?任何想法都会有所帮助。

干杯 -普里扬克

I am working on an Android app. It has corresponding spec/test application. As part of some of my tests, I need to pick up an image from my assets folder and calculate SHA-1 for it.
I can calculate SHA, as long as I can pick the image. Since the tests run on emulator; I am not sure how to pick the image in my test.

Does anyone have any idea, how I can go about it. With and without AssetManager maybe? Any ideas will be helpful.

Cheers
-Priyank

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吃素的狼 2024-09-25 01:16:49

我通过扩展 ActivityInstrumentationTestCase2 来实现此目的,然后在设置中获取对活动的引用,最后获取 AssetManager

    public class Sha1Test
        extends ActivityInstrumentationTestCase2<MyActivity> {
        private AssetManager m_assetManager;
        public Sha1Test() {
            super("com.example.test", MyActivity.class);
        }

        @Override
        public void setUp() throws Exception {
            super.setUp();
            MyActivity activity = this.getActivity();
            m_assetManager = activity.getAssets();
        }

        @Override
        public void testSomething() throws Exception {
            InputStream stream = m_assetManager.open("myimage.png");
        }
    }

您需要在模拟器上将其作为 Android 单元测试运行,因为它取决于加载资源的主要活动。

I do this by extending ActivityInstrumentationTestCase2, then in the setup getting a reference to the activity and finally getting the AssetManager.

    public class Sha1Test
        extends ActivityInstrumentationTestCase2<MyActivity> {
        private AssetManager m_assetManager;
        public Sha1Test() {
            super("com.example.test", MyActivity.class);
        }

        @Override
        public void setUp() throws Exception {
            super.setUp();
            MyActivity activity = this.getActivity();
            m_assetManager = activity.getAssets();
        }

        @Override
        public void testSomething() throws Exception {
            InputStream stream = m_assetManager.open("myimage.png");
        }
    }

You'll need to run this on the emulator as an Android Unit Test, since it depends on the main activity to load the assets.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文