+
+inline fun <reified E: Throwable> OngoingStubbing<*>.doThrow(): OngoingStubbing<*> = thenThrow(E::class.java)
+
+inline fun <reified T : Any> bind(implementation: T): Module =
+ Module { it!!.bind(T::class.java).toInstance(implementation) }
+
+inline fun <reified T : Any> bindMock(): Module =
+ Module { it!!.bind(T::class.java).toInstance(mock<T>()) }
+
+inline fun <reified T: Any?> whenever(methodCall: T) = Mockito.`when`(methodCall)!!
+
+inline fun <reified T : Any> OngoingStubbing<T>.thenReturnMock(): OngoingStubbing<T> = this.thenReturn(mock<T>())