android {
sourceSets {

main.java.srcDirs += 'src/main/kotlin'

test.java.srcDirs += 'src/test/kotlin'

androidTest.java.srcDirs += 'src/androidTest/kotlin'

}

}
//ExampleUnitTest.java
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}
//ExampleUnitTest.kt
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
}
//app/build.gradle
dependencies {
testCompile 'org.mockito:mockito-core:1.10.19'
}
//KotlinSimpleMockitoTest.kt
class KotlinSimpleMockitoTest {
@Test
fun Context () {
val context = Mockito.mock(Context::class.java)
Mockito.`when`(context.packageName).thenReturn("shoma2da")
val packageName = context.getPackageName();
Assert.assertEquals("shoma2da", packageName);
}
}
//User.kt
class User(val birthYear:Int) {
fun getAge() = 2016 - birthYear
}
//UserTest.kt
class UserTest {
@Test
fun User () {
val user = Mockito.mock(User::class.java)
Mockito.`when`(user.getAge()).thenReturn(1)
val age = user.getAge()
Assert.assertEquals(1, age)
}
}
//logcat
org.mockito.exceptions.base.MockitoException:
Cannot mock/spy class YOUR_PACKAGE.User
Mockito cannot mock/spy following:
- final classes
- anonymous classes
- primitive types
open


//User.kt
open class User(val birthYear:Int) {
open fun getAge() = 2016 - birthYear
}
//User.kt
interface User {
fun getAge():Int
}
class UserImpl(val birthYear:Int) : User {
override fun getAge() = 2016 - birthYear
}
//UserTest.kt
@RunWith(PowerMockRunner::class)
@PrepareForTest(User::class)
class UserTest {
@Test
fun User () {
val user = PowerMockito.mock(User::class.java)
Mockito.`when`(user.getAge()).thenReturn(1)
val age = user.getAge()
Assert.assertEquals(1, age)
}
}
//build.gradle
dependencies {
testCompile 'org.powermock:powermock-module-junit4:1.6.2'

testCompile 'org.powermock:powermock-api-mockito:1.6.2'
}




Kotlinでテストコードを書く
Kotlinでテストコードを書く

Kotlinでテストコードを書く