Ресурс Android не найден в ProviderTestCase2

В настоящее время я пишу импортер csv-файлов для своего приложения, но мне трудно писать для него тесты. Я пытаюсь импортировать образец 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();
        }

        ...
    }

}

Тестовый файл так и не был найден, хотя он доступен в нужном месте.


person prakt    schedule 02.04.2013    source источник
comment
где именно у тебя проблема?   -  person Eveli    schedule 02.04.2013
comment
@Ekonion Моя проблема в том, что мой тестовый файл так и не был найден, хотя он находится в правильном месте. Более того, я не уверен, что это правильный способ тестирования таких вещей, так как я новичок в TDD в целом.   -  person prakt    schedule 02.04.2013
comment
Пытаюсь решить аналогичную проблему. Как вы можете сказать, что файл действительно находится в правильном месте?   -  person Code-Apprentice    schedule 12.12.2013
comment
@prakt Можете ли вы дать нам пойманное исключение?   -  person IgorGanapolsky    schedule 14.10.2014


Ответы (1)


Проблема в том, что ресурсы в необработанном каталоге сжимаются, если они не имеют расширения файла 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 к вашим необработанным ресурсам. Это не чисто и не красиво, но работает.

person Michael    schedule 05.12.2014