我是单元测试的新手,我想测试我的SQLiteDataBase.
我有一个名为MySQLiteHelper的类,它扩展了SQLiteOpenHelper.我有一个名为LocationDataHandler的类,我用它来添加或删除我的DataBase中的元素.我有一个类LocationDataHandlerTest,它扩展了AndroidTestCase,以测试我的LocationDataHandler类.
我正在尝试测试我的SQLite数据库,但我似乎在所有不同的上下文之间有点迷失.
这是我的代码:
//Context context = new Activity();
//IsolatedContext context = getMockContext();
//Context context = new MockContext();
//Context context = getInstrumentation().getContext();
Context context = getContext();
helper = new MySQLiteHelper(context);
assertNotNull(helper);
SQLiteDatabase db = helper.getWritableDatabase();
assertNotNull(db); <---- it fails here !
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我尝试过许多不同的环境,我看到人们使用和使用它们.我真的不明白为什么它在我的情况下不起作用.
我的问题是测试在"assertNotNull(db);"行上失败了 这意味着我永远无法检索我的数据库.
我这样做是错误的吗?我没有使用正确的背景吗?
编辑:这是我的logcat:
junit.framework.AssertionFailedError
at junit.framework.Assert.fail(Assert.java:55)
at junit.framework.Assert.assertTrue(Assert.java:22)
at junit.framework.Assert.assertNotNull(Assert.java:256)
at junit.framework.Assert.assertNotNull(Assert.java:248)
at junit.framework.TestCase.assertNotNull(TestCase.java:417)
at com.databerries.LocationDataHandlerTest.testAddLocation(LocationDataHandlerTest.java:72)
Run Code Online (Sandbox Code Playgroud) 我在Android Studio中导入了一个Phonegap项目,并将其作为基于Gradle的项目.
现在我正在尝试编译一些外部依赖项,我收到此错误:
错误:(72,13)无法解决:com.loopj.android:android-async-http:1.4.6
在"项目结构"对话框的" 文件显示"中显示
我试图通过进入File-> ProjectStructure-> Dependencies并"自动"添加它们来添加这些依赖项.Android Studio确实找到了库,并将它们添加到我的build.gradle中,但我仍然得到同样的错误......
这是我的build.gradle文件的一部分(依赖项位于底部):
import java.util.regex.Pattern
apply plugin: 'android'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0+'
}
}
ext.multiarch=false
android {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
defaultConfig {
versionCode Integer.parseInt("" + getVersionCodeFromManifest() + "0")
}
compileSdkVersion 21
buildToolsVersion "21.0.0"
if (multiarch || System.env.BUILD_MULTIPLE_APKS) {
productFlavors {
armv7 {
versionCode …Run Code Online (Sandbox Code Playgroud)