設定
build.gradleにKotlinとAndroidTestの設定を入れる。
build.gradle
buildscript {
ext.kotlin_version = '0.12.613'
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
app/build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "me.mattak.kotlinandroidtestsample"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
}
dependencies {
compile 'com.android.support:appcompat-v7:22.2.0'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
androidTestCompile 'com.android.support.test:runner:0.3'
androidTestCompile 'com.android.support.test:rules:0.3'
}
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
を忘れがちなので注意。
com.android.support.test
パッケージを使うとJUnit4サポートが簡単。
Test
ApplicationTest.kt
package me.mattak.kotlinandroidtestsample
import android.support.test.InstrumentationRegistry
import android.support.test.runner.AndroidJUnit4
import org.junit
import org.junit.runner.RunWith
import kotlin.test.assertEquals
/**
* ApplicationTest
*/
RunWith(AndroidJUnit4::class)
public class ApplicationTest {
junit.Before
public fun setup() {
// something setup
}
junit.After
public fun teardown() {
// something teardown
}
junit.Test
public fun packageName() {
assertEquals(InstrumentationRegistry.getTargetContext().getPackageName(), "me.mattak.kotlinandroidtestsample")
}
}
RunWith(AndroidJUnit4::class)
してあげる点と、junit.Test
のアノテーションをつける点を忘れなければ大丈夫。
Context
は JUnit4から InstrumentationRegistry.getTargetContext()
から取るようになったようだ。
SampleCode
KotlinAndroidTestSample
確認にどうぞ。./gradlew connectedCheck --info
で実行できます。