Product Promotion
0x5a.live
for different kinds of informations and explorations.
GitHub - dmcg/k-sera: A JMock wrapper for Kotlin
A JMock wrapper for Kotlin. Contribute to dmcg/k-sera development by creating an account on GitHub.
Visit SiteGitHub - dmcg/k-sera: A JMock wrapper for Kotlin
A JMock wrapper for Kotlin. Contribute to dmcg/k-sera development by creating an account on GitHub.
Powered by 0x5a.live ๐
K-Sera
A JMock wrapper for Kotlin.
KSeraExampleTests shows how to write a test.
class KSeraExampleTests {
// Create a mockery using the usual JMock rule
@Rule @JvmField val mockery = JUnitRuleMockery()
// and a mock from the mockery
val charSequence = mockery.mock<CharSequence>()
@Test fun `expect a call to a mock via the mockery`() {
mockery.expecting {
oneOf(charSequence).length
}
// in this case JMock returns a default value
assertEquals(0, charSequence.length)
}
@Test fun `you can specify a (type-checked) return value for a call`() {
mockery.expecting {
oneOf(charSequence).length.which will returnValue(42)
}
assertEquals(42, charSequence.length)
// oneOf(charSequence).length.which will returnValue("banana") doesn't compile
}
@Test fun `simulate failures with throwException`() {
mockery.expecting {
oneOf(charSequence).length.which will throwException(RuntimeException("deliberate"))
}
assertFails {
charSequence.length
}
}
@Test fun `special operators work well`() {
mockery.expecting {
allowing(charSequence)[0].which will returnValue('*')
}
assertEquals('*', charSequence.get(0))
}
@Test fun `match parameters with Hamkrest`() {
mockery.expecting {
allowing(charSequence)[with(lessThan(0))].which will returnValue('-')
allowing(charSequence)[with(anything)].which will returnValue('+')
}
assertEquals('-', charSequence.get(-1))
assertEquals('+', charSequence.get(99))
}
@Test fun `which-will can take a block and access the call invocation`() {
mockery.expecting {
allowing(charSequence)[with(anything)].which will { invocation ->
(invocation.getParameter(0) as Int).toChar()
}
}
assertEquals(' ', charSequence[32])
assertEquals('A', charSequence[65])
}
@Test fun `you can mock functions too`() {
val f = mockery.mock<(Any?) -> String>()
mockery.expecting {
allowing(f).invoke(with(anything)).which will returnValue("banana")
}
assertEquals("banana", f("ignored"))
}
// Shall we play a game?
val controlPanel = Panel(
mockery.mock<Key>("key1"),
mockery.mock<Key>("key2"),
mockery.mock<Missile>())
@Test fun `block syntax for expecting-during-verify`() =
mockery {
expecting {
allowing(controlPanel.key1).isTurned.which will returnValue(true)
allowing(controlPanel.key2).isTurned.which will returnValue(true)
}
during {
controlPanel.pressButton()
}
verify {
oneOf(controlPanel.missile).launch()
}
}
@Test fun `given-that allows property references`() =
mockery {
given {
that(controlPanel.key1, Key::isTurned).isProperty withValue (true)
that(controlPanel.key2, Key::isTurned).isProperty withValue (false)
}
during {
controlPanel.pressButton()
}
verify {
never(controlPanel.missile).launch()
}
}
}
k-sera is available at Maven central.
Kotlin Resources
are all listed below.
GitHub - BenWoodworth/knbt: Kotlin NBT library for kotlinx.serialization
resource
~/github.com
resource
GitHub - brianmadden/krawler: A web crawling framework written in Kotlin
resource
~/github.com
resource
GitHub - OxygenCobalt/Auxio: A simple, rational music player for android
resource
~/github.com
resource
GitHub - eriksencosta/math-percentage: Percentage calculations made easy
resource
~/github.com
resource
GitHub - ctripcorp/mmkv-kotlin: A Kotlin Multiplatform porting for MMKV.
resource
~/github.com
resource
GitHub - Litote/kmongo: [deprecated] KMongo - a Kotlin toolkit for Mongo
resource
~/github.com
resource
Test-Driven Development Tutorial for Android: Getting Started
resource
~/www.raywenderlich.com
resource
GitHub - jacinpoz/rxaerospike: RxJava2 wrapper for aerospike-client-java
resource
~/github.com
resource
GitHub - pedrovgs/KotlinSnapshot: Snapshot Testing framework for Kotlin.
resource
~/github.com
resource
GitHub - hankdavidson/ktime: kotlin extensions to the java8 time library
resource
~/github.com
resource
GitHub - ziggy42/Blum: A simple android Twitter client written in Kotlin
resource
~/github.com
resource
Made with โค๏ธ
to provide different kinds of informations and resources.