2014-01-09 3 views
0

Я тестирую часть моего приложения для Android. Я новичок в Android, и моя команда является новой для модульного тестирования. (Sigh !!!)Издевательствование моей базы данных sqlite

Итак, я хочу захватить наш пользовательский адаптер базы данных и заменить базу данных Sqlite на насмешку, созданную с помощью jmockit.

Когда я пытаюсь это, все это выглядит хорошо, но когда я запускаю его, я получаю:

java.lang.NoClassDefFoundError: android/database/sqlite/SQLiteDatabase 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2436) 
    at java.lang.Class.getDeclaredMethods(Class.java:1793) 
    at org.junit.internal.MethodSorter.getDeclaredMethods(MethodSorter.java:54) 
    at org.junit.runners.model.TestClass.<init>(TestClass.java:45) 
    at org.junit.runners.ParentRunner.<init>(ParentRunner.java:75) 
    at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:57) 
    at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:10) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:33) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 
Caused by: java.lang.ClassNotFoundException: android.database.sqlite.SQLiteDatabase 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    ... 20 more 

Я не знаю, куда идти отсюда. Я попытался найти насмешливый sqlite, но не зашел далеко.

ответ

0

В итоге я использовал robolectric от http://robolectric.org/, чтобы предоставить класс базы данных и позвольте мне двигаться вперед.

Смежные вопросы