JUnit vs Kotest(旧kotlintest)
JUnit: 昔ながらのJavaのxUnit Test Framework
JUnit4 vs JUnit5
Androidプラットフォームの依存を使いたくばJUnit4を要求される
非Androidプラットフォームな部分についてはJUnit5でよかろう
Kotest: Kotlin向けのTest Framework
なんかおしゃれ
テストケースの書き方が馬鹿みたいにいっぱいある
どれを選べばいいか迷う
アサーションがinfix関数なのでfluentな記述ができる
`1 + 1 shoudBe 2` みたいな感じ
kotest + kotlin-power-assert の統合のしにくさ
僕は数多あるアサーション関数を一切覚えたくないので power-assert の kotlin 版を使いたいです
kotest で kotlin-power-assert を使ったときのツラみは、単体のテストケースを実行したときに assert がきちんと落ちないことです(テストスイート全体を実行するとちゃんと落ちます)
理由はアサーションが有効になっていないためでした
assertの実装を見に行くとなにやらフラグらしきもので制御されています
_Assertions.ENABLEDがtrueになるには、VM Optionで -ea というのを渡さないといけないようです
では -ea はどこから渡せばよいのでしょうか
Run/Debug Configurations を開いて、 Modify options から Add VM Options を有効にし、追加されたフォームに -ea と入力すればいけます
毎回構成を変更するのは面倒なのでテンプレートに手を加えます
こうすれば常にアサーションが有効になります
JUnit5はどうやって導入するのが正解なん?
JUnit公式のサンプルではこう
Kotlin公式ではこう
https://kotlinlang.org/docs/jvm-test-using-junit.html#add-the-code-to-test-it
version catalogに載せるのであればこう
でもこれどっちがええの?