我发现我不是唯一遇到此问题的人,但我没有找到正确的答案。 我有一个要测试的 android 项目。我为项目的每个类创建了一个 junit 测试类。 我的问题是当我运行测试时,出现以下错误:
java.lang.NoClassDefFoundError: android/content/Context
这是我的类测试:
public class DevicesBDDTest extends TestCase {
DevicesBDD bdd;
/**
* @throws java.lang.Exception
*/
protected static void setUpBeforeClass() throws Exception {
}
/**
* @throws java.lang.Exception
*/
protected static void tearDownAfterClass() throws Exception {
}
protected void setUp() throws Exception {
super.setUp();
Context ctx = mock(Context.class);
final MaBaseSQLiteInterface mockMaBaseSQLite = mock(MaBaseSQLiteInterface.class);
bdd = new DevicesBDD(ctx){
@Override
public MaBaseSQLiteInterface createMaBaseSQlite(Context context) {
return mockMaBaseSQLite;
}
};
}
protected void tearDown() throws Exception {
super.tearDown();
}
public void test() {
assertEquals(1, 1);
}
}
我的 DevicesBDD 类需要一个对象上下文,因此我创建了一个模拟(使用模拟)。我也尝试了一个对象 MockContext ,但它不起作用。
这是我的 Java 构建路径:
- mockito-all-1.9.5.jar
- 安卓 2.1 -> android.jar
- Android 依赖项 -> annotations.jar
- Junit 3 -> junit.jar
最佳答案
不确定我是否遇到与您相同的问题,但我正在使用 gradle,由于某种原因,测试不再运行,出现与您相同的错误。我尝试清洁和重建,但无济于事。经过数小时的沮丧并试图找到答案后,我在 GitHub 线程中发现了一个简单的解决方案:
I resolved this issue by removing the .gradle folder in my project and rebuilding the project.
(感谢 vpetrov)
关于android - java.lang.NoClassDefFoundError :android and junit test,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14213219/