3

我目前正在为我的应用程序编写一个 csv-file-importer,但我很难为它编写测试。我要做的是导入一个示例 csv 文件并将结果与​​数据库进行比较。

public class CSVImportTest extends ProviderTestCase2<MyProvider> {

    @Override
    protected void setUp() throws Exception {
        super.setUp();

        mContentResolver = getMockContentResolver();
        setContext(new IsolatedContext(mContentResolver, getContext()));
        mContext = getContext();
        mCSVImport = new CSVImportParker(mContext);

    }

    public void read() {
        try {
            // Fails here with "File not found."
            InputStream input = mContext.getResources()
                 .openRawResource(my.package.R.raw.file);

            ...
        } catch (Exception e) {
            e.printStackTrace();
            fail();
        }

        ...
    }

}

永远找不到测试文件,尽管它位于正确的位置。

4

1 回答 1

0

问题是原始目录中的资源被压缩,除非它们具有 ogg 或 mp3 文件扩展名。请参阅此说明:

Proguard 破坏资产或原始音频文件

并从文档

This function only works for resources that are stored in the package as uncompressed data, which typically includes things like mp3 files and png images.

因此,解决此问题的最简单方法是将 mp3 或 ogg 文件扩展名添加到您的原始资产中。它不干净也不漂亮,但它确实有效。

于 2014-12-05T00:07:37.967 回答