2016-05-15 51 views
2

我使用Android Studio 2.0,並且我是Android的新手。 在我的源代碼中,Xml.newPullParser()很好用 但是,當我在junit test(測試目錄)中輸入它時,我發現它返回null。爲什麼會發生?我對它感到困惑。爲什麼Xml.newPullParser()在Android測試中返回null?

第二個問題,有兩個目錄(test和androidTest),它們之間有什麼不同?我應該使用哪一個?

package com.ecust.ecusthelper.util.network.httpurlconnection; 

import android.util.Xml; 

import org.junit.Assert; 
import org.junit.Test; 
import org.xmlpull.v1.XmlPullParser; 

public class XmlTest { 

    @Test 
    public void testXmlNonNull() { 
     XmlPullParser pull = Xml.newPullParser(); 
     if (pull == null) 
      Assert.fail("Why here is null"); 
    } 
} 

我的build.gradle

apply plugin: 'com.android.application' 
apply plugin: 'me.tatarka.retrolambda' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 

    defaultConfig { 
     applicationId "com.ecust.ecusthelper" 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 2 
     versionName '1.1' 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    productFlavors { 
    } 
    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_8 
     targetCompatibility JavaVersion.VERSION_1_8 
    } 
    testOptions { 
     unitTests.returnDefaultValues = true 
    } 
} 

dependencies { 
    testCompile 'junit:junit:4.12' 
    debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta2' 
    releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2' 
    testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2' 
    compile 'com.android.support:appcompat-v7:23.2.1' 
    .... 
} 
+0

你可以sh是'build.gradle'的'junit'配置嗎?你確定你指定了一個正確的'testInstrumentationRunner'嗎? – x0r

+0

ohh,我不知道如何使用'testInstrumentationRunner'。這是我的'build.gradle',我使用'unitTests.returnDefaultValues = true' – chenjj2048

回答

0

我認爲你需要在你的build.gradledefaultConfig部分指定測試運行:

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 

所以它看起來像這樣:

defaultConfig { 
    applicationId "com.ecust.ecusthelper" 
    minSdkVersion 15 
    targetSdkVersion 23 
    versionCode 2 
    versionName '1.1' 
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
}