Skip to content

Instantly share code, notes, and snippets.

@Albert-Gao
Created March 22, 2018 04:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Albert-Gao/e546a8f2ea6d6be0b766c30dab476dbe to your computer and use it in GitHub Desktop.
Save Albert-Gao/e546a8f2ea6d6be0b766c30dab476dbe to your computer and use it in GitHub Desktop.
// classes.kt
class Person(
var name:String
) {
fun getRealName():String {
return "Real:" + this.name
}
}
class Team {
protected val person: Person = Person("Ben")
var memberName: String
get() = person.name
set(value) {
person.name = value
}
fun getPersonName():String {
return person.getRealName()
}
}
// classesTest.kt
import io.mockk.MockKAnnotations
import io.mockk.every
import io.mockk.impl.annotations.MockK
import io.mockk.verify
import org.junit.Before
import kotlin.test.*
class ClassesTest {
@MockK
private lateinit var mockPerson:Person
@Before
fun setup() {
MockKAnnotations.init(this)
}
@Test
fun mockGetPersonName() {
every {
mockPerson.getRealName()
} returns "Albert"
val team = Team()
assertEquals("Albert", team.getPersonName())
}
@Test
fun mockPropertyGetter() {
every {
mockPerson.name
} returns "Albert"
val team = Team()
assertEquals("Albert", team.memberName)
}
@Test
fun mockPropertySetter() {
val team = Team()
team.memberName = "Kim"
verify {
// I want to check if the setter of the person.name has been called with "Kim"
mockPerson.name = "Kim"
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment