2022年8月8日月曜日

kotlin coroutines 1.6.4 で TestScope.backgroundScope が追加された

https://github.com/Kotlin/kotlinx.coroutines/releases/tag/1.6.4

background で実行してテスト終了時にキャンセルされる coroutines を起動できます。
いままでは明示的に cancelAndJoin() していたのがいらなくなりますね。

  1. @Test  
  2. fun test() = runTest {  
  3.   
  4.     val list = mutableListOf<SomeValue>()  
  5.   
  6.     val job = launch(UnconfinedTestDispatcher()) {  
  7.         repository.someValueFlow().collect {  
  8.             list.add(it)  
  9.         }  
  10.     }  
  11.   
  12.     ...  
  13.   
  14.     assertEquals(expectedSomeValueList, list)  
  15.   
  16.     job.cancelAndJoin()  
  17. }  
  1. @Test  
  2. fun test() = runTest {  
  3.   
  4.     val list = mutableListOf<SomeValue>()  
  5.   
  6.     backgroundScope.launch(UnconfinedTestDispatcher()) {  
  7.         repository.someValueFlow().collect {  
  8.             list.add(it)  
  9.         }  
  10.     }  
  11.   
  12.     ...  
  13.   
  14.     assertEquals(expectedSomeValueList, list)  
  15. }  

0 件のコメント:

コメントを投稿