Skip to content

Instantly share code, notes, and snippets.

@ngsw-taro
Last active September 16, 2015 23:50
Show Gist options
  • Save ngsw-taro/7f90abd2f65ba99c33e8 to your computer and use it in GitHub Desktop.
Save ngsw-taro/7f90abd2f65ba99c33e8 to your computer and use it in GitHub Desktop.
import com.google.inject.Guice
import javax.inject.Inject
import kotlin.properties.Delegates
class Greeter {
fun greet() {
println("Hello")
}
}
class Client {
@Inject
lateinit val greeter1: Greeter
@Inject
val greeter2: Greeter by Delegates.notNull()
}
fun main(args: Array<String>) {
val injector = Guice.createInjector()
val client = injector.getInstance(Client::class.java)
client.greeter1.greet() //=> Hello
client.greeter2.greet() // IllegalStateException thrown
}
import org.junit.Before
import org.junit.Test
import org.mockito.Mockito.mock
import kotlin.properties.Delegates
interface Greeter {
fun greet()
}
class Client {
lateinit var greeter1: Greeter
var greeter2: Greeter by Delegates.notNull()
}
class ClientTest {
val sut = Client()
@Before
fun setUp() {
sut.greeter1 = mock(Greeter::class.java)
sut.greeter2 = mock(Greeter::class.java)
}
@Test
fun test() {
sut.greeter1.greet()
sut.greeter2.greet()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment