android - java.lang.NoClassDefFoundError :android and junit test

标签 android junit testcase

我发现我不是唯一遇到此问题的人,但我没有找到正确的答案。 我有一个要测试的 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/

相关文章:

android - 什么是 adb device -l 列表?

java - 如何为 Rest 调用编写 Junit 测试用例?

machine-learning - 神经网络测试用例

android - Drawable.getIntrinsicWidth() 的尺寸错误

javascript - 为什么我的 CSS 和 PHP 包含没有加载到我的 WebView 中

java - 如何 JUnit 测试我的模拟方法是否使用我想要的参数(不仅仅是 id,而是深度相等匹配器)调用?

java - JUnit:断言集合与参数化类型 - 数组相等

c - 插入过程的黑盒测试用例

PHP - fatal error : Class 'PHPUnit_Framework_Test

java - Android 应用程序在 System.exit(0) 上重启;