Created
March 22, 2018 04:19
-
-
Save Albert-Gao/e546a8f2ea6d6be0b766c30dab476dbe to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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