Android 配置kotlin单元测试

最近开始学习Kotlin,将之前的一个验证证书的题目里全部改成用Kotlin来写,其中有使用到单元测试,故在这里对Kotlin进行单元测试的配置进行记录。

首先build.gradle里添加单元测试依赖:

apply plugin: 'kotlin-android'

android {
    sourceSets {
    //这里主要是添加存放kotlin的测试文件夹,不然我们在test里创建kotlin文件夹是没什么效果的
        test.java.srcDirs += 'src/test/kotlin'
    }
}

dependencies {
    testCompile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
}

接着在test文件夹下创建kotlin文件夹:
在这里插入图片描述
注意kotlin文件夹下还要建项目包名和main/java下的包名相同,比如项目代码在main/java/com/cui/example那么kotlin文件夹下需要创建com.cui.example文件夹,否则在生成测试代码时不能弹窗。

然后在main中项目代码中写一个工具类CalculatorTest:

class Calculator {
    fun sum(a:Double,b:Double):Double{
        return a + b
    }
}

选中代码(不选中点击test后不弹窗),点击右键:
在这里插入图片描述
出现如下弹框:
在这里插入图片描述
弹出如下窗口,这里可以选择需要测试的接口,以及选择是否生成setUp和tearDown方法,setUp会在测试启动的时候被调用,tearDown会在测试结束的时候被调用
在这里插入图片描述
点击OK,然后选择src/test目录:
在这里插入图片描述
就会自动在kotlin相应包名下生成测试类:
在这里插入图片描述
自动生成的代码如下:

class CalculatorTest : TestCase() {
    public override fun setUp() {
        super.setUp()
    }

    public override fun tearDown() {}

    fun testSum() {}

}

我们将自动生成的CalculatorTest.kt稍做修改,如下:

 class CalculatorTest : TestCase() {
    var calculator: Calculator? = null
    public override fun setUp() {
        System.out.println("setUp")
        calculator = Calculator()
    }

    public override fun tearDown() {
        System.out.println("tearDown")
    }

    fun testSum() {
        assertEquals(2.0, calculator?.sum(1.0,1.0)?:1.0, 0.0)
    }

}

现在我们可以开始进行测试了,右键CalculatorTest.kt:
在这里插入图片描述
点击Run ‘CalculatorTest’,可以看到如下结果,代表测试通过了:
在这里插入图片描述
现在我们修改一下sum方法,如下:

fun testSum() {
        assertEquals(1.0, calculator?.sum(1.0,1.0)?:1.0, 0.0)
    }

再次run,结果如下:
在这里插入图片描述

测试方法和java方法测试参考:https://blog.csdn.net/u013254166/article/details/80612127

发布了224 篇原创文章 · 获赞 390 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/cui130/article/details/90269333