Infinito Nirone 7

白羽の矢を刺すスタイル

kotest 4.3.0 で Robolectric Extension が安定版になった

以前に kotest を使ったテストに Robolectric をあわせるときの注意点を書きましたが、このときはまだ Experimental な状態だった Robolectric Extension が 4.3.0 から安定版となりました。

blog.keithyokoma.dev

マイグレーション作業

安定版となったことで次にあげるマイグレーション作業が必要になります。

import 文の修正

RobolectricExtension および @RobolectricTest のパッケージが変わっています。

- import io.kotest.experimental.robolectric.RobolectricExtension
+ import io.kotest.extensions.robolectric.RobolectricExtension
- import io.kotest.experimental.robolectric.RobolectricExtension
+ import io.kotest.extensions.robolectric.RobolectricExtension

安定版リリースでの変更点

同一モジュール内での @RobolectricTest と通常のテストの共存

以前は同一モジュールで RobolectricExtension を有効化すると、そのモジュール内のすべてのテストで @RobolectricTest が必要でした。安定版では必要なテストクラスのみに @RobolectricTest を付与し、@RobolectricTest の有無に関わらずすべてのテストが正常に実行できるようになりました。

安定版リリースでも動作しないもの

BehaviorSpec が利用できない

以前と変わらず、Robolectric の初期化が二重に走ってしまいテストがコケます。

IsolationMode を InstancePerLeaf 以外にするとテストがコケる

以前と変わらず、InstancePerLeaf 以外では Looper の初期化が二重に走ってしまいテストがコケます。