assertEquals - 总是通过测试 - Android Studio

时间:2016-06-24 16:16:10

标签: unit-testing android-studio junit

我是关于junit测试的新手。我不明白我错在哪里。这是一个简单的单元测试(简化了我的实际测试):

apply plugin: 'com.android.application'

android {
    compileSdkVersion 'Google Inc.:Google APIs:21'
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.myapp.mobile.app.servizi.activity"
        minSdkVersion 9
        targetSdkVersion 21

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    sourceSets {
        main {
            java.srcDirs = ['src/main/java', 'src/test/java']
        }

    }


    //instruct the Gradle build system to return default values for method calls
    //in the `android.jar`with the following configuration in your Gradle build file.
    testOptions {
        unitTests{
            returnDefaultValues = true
        }
    }


}


dependencies {
    compile project(':androidswitchbackport')
    compile project(':librarySlidingMenu')
    compile project(':libraryViewPagerIndicator')
    compile 'com.google.code.gson:gson:2.3.1'
    compile 'com.google.android.gms:play-services:7.0.0'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    compile 'com.android.support:support-v4:21.0.0'

    //dependency for Local test
    // Required -- JUnit 4 framework
    testCompile 'junit:junit:4.12'
    // Optional -- Mockito framework
    testCompile 'org.mockito:mockito-core:1.10.19'

}

当我运行exampleTest时,我得到测试总是通过。

我哪里错了?有人可以解释一下吗?

我的build.gradle文件是:

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, Range("B:C")) Is Nothing Then
        Range("C1").Sort Key1:=Range("C2"), _
          Order1:=xlDescending, Header:=xlYes, _
          OrderCustom:=1, MatchCase:=False, _
          Orientation:=xlTopToBottom
    End If
End Sub

gradle文件有很多依赖项,因为有问题的App很复杂,很久很久,我有责任进行测试。如果你帮我一把,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您应该在方法中添加注释(@Before@Test),以便将其识别为测试方法。

如果只运行jUnit测试,则无需扩展InstrumentationTestCase

我测试了这个课程,我得到了一个失败的预期:

import org.junit.Before;
import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class exampleTest {
    String ob1, ob2;

    @Before
    public void setUp() throws Exception {
        ob1 = "hi";
        ob2 = "bye";
    }

    @Test
    public void  testEx()throws Exception{
        assertEquals("Error", ob1, ob2);
    }
}