@Test
fun test() = runTest(UnconfinedTestDispatcher()) {
var result = 0
launch {
result = 1
}
assert(result == 1)
}
Slide 22
Slide 22 text
@Test
fun test() = runTest(UnconfinedTestDispatcher()) {
var result = 0
launch {
result = 1
}
assert(result == 1)
}
✅ Success
Slide 23
Slide 23 text
Mainスレッド対応
Slide 24
Slide 24 text
class Sample {
suspend fun run(): String =
withContext(Dispatchers.Main) {
"hoge"
}
}
Slide 25
Slide 25 text
@Test
fun testRun() = runTest {
val sample = Sample()
val result = sample.run()
assert(result == "hoge")
}
Slide 26
Slide 26 text
@Test
fun testRun() = runTest {
val sample = Sample()
val result = sample.run()
assert(result == "hoge")
}
Slide 27
Slide 27 text
@Before
fun setUp() {
Dispatchers.setMain(StandardTestDispatcher())
}
@After
fun tearDown() {
Dispatchers.resetMain()
}
Slide 28
Slide 28 text
Flowのテスト
Slide 29
Slide 29 text
class Sample {
val flow = MutableSharedFlow()
suspend fun emit(value: Int) {
flow.emit(value)
}
}
Slide 30
Slide 30 text
@Test
fun test() = runTest(UnconfinedTestDispatcher()) {
val sample = Sample()
val result = mutableListOf()
val job = launch {
sample.flow.toCollection(result)
}
assert(result.size == 0)
sample.emit(1)
assert(result.size == 1)
assert(result.first() == 1)
job.cancel()
}
Slide 31
Slide 31 text
@Test
fun test() = runTest(UnconfinedTestDispatcher()) {
val sample = Sample()
val result = mutableListOf()
// ...
}
Slide 32
Slide 32 text
@Test
fun test() = runTest(UnconfinedTestDispatcher()) {
val sample = Sample()
val result = mutableListOf()
val job = launch {
sample.flow.toCollection(result)
}
// ...
}
Slide 33
Slide 33 text
@Test
fun test() = runTest(UnconfinedTestDispatcher()) {
val sample = Sample()
val result = mutableListOf()
val job = launch {
sample.flow.toCollection(result)
}
// ...
}