hel*_*ene 31 junit android testcase
我看到我不是唯一一个有这个问题的人,但我找不到正确的答案.我有一个我想测试的android项目.我为我的项目的每个类创建一个junit测试类.我的问题是当我运行我的测试时,我有以下错误:
java.lang.NoClassDefFoundError: android/content/Context
Run Code Online (Sandbox Code Playgroud)
这是我的班级考试:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
我的类DevicesBDD需要一个对象Context,因此我创建了一个mock(带有mockito).我也尝试使用对象MockContext,但它不起作用.
这是我的Java构建路径:
LoP*_*oBo 75
不确定我是否遇到了和你一样的问题,但是我正在使用gradle,由于某种原因,测试就不再运行了,并且出现了与你相同的错误.我试过清洁和重建但无济于事.经过数小时的挫折并试图找到答案后,我在GitHub线程中遇到了简单的解决方案:
我通过删除项目中的.gradle文件夹并重建项目来解决此问题.
(感谢vpetrov)
请按照以下步骤解决问题:
1.打开模块级别的build.gradle文件,转到依赖项,转到此行-
testImplementation 'junit:junit:4.12'
Run Code Online (Sandbox Code Playgroud)
2.将junit版本更改为它下面的其他任何版本(例如4.10)
testImplementation 'junit:junit:4.10'
Run Code Online (Sandbox Code Playgroud)
3.同步项目
4,我的问题到此为止已解决
5,如果需要,将junit版本设置回以前的版本(在我的情况下为4.12)
testImplementation 'junit:junit:4.12'
Run Code Online (Sandbox Code Playgroud)
6.同步项目
在我的情况下,更改junit版本和同步项目是可行的。
| 归档时间: |
|
| 查看次数: |
9245 次 |
| 最近记录: |