mike-neckのブログ

Java or Groovy or Swift or Golang

Kotlin 用のテストフレームワークをリリースしました

表題の通り、テストフレームワークをリリースしました。

名前は ktcheck です。

JUnit Platform 上で動かせますが、普通のメインプログラムの中でも使えます。

利用方法

インストール・導入

gradle の場合、次の記述を dependencies ブロックに記述します。

dependencies {
  testImplementation("run.ktcheck:ktcheck:v0.1.0")
}

テストの記述

object を作って、 KtCheck インターフェースを実装させて、 Given.When.Then で生成されるオブジェクトに移譲します。

object IntPlusTest: KtCheck
by Given("Int の値 1 に", { 1 })
  .When("Int の値 3 を足すと", { int -> int + 3 })
  .Then("4 になる", {_, result -> result shouldBe 4})

条件を Given に記述し、操作を When に記述して、 Thenアサーションを記述するのを強制するようなフレームワークになっています。

あとはテストの実行ですが、 IntelliJ では ktcheck のテストを検出できませんので、 gradle のテストタスクを起動します

テストが実行されて、結果も表示されます。他の gwh スタイルのテストフレームワークよりも明確にテストの名前が表示されるので落ちたテストについてどのようなテストであるかがわかりやすくなっています(kotest のいやなところをこちらは解決した)。

f:id:mike_neck:20200413234557p:plain

もう少し、凝った使い方もできますが、とりあえず省略です。

レポジトリーはこちらです

github.com

あと、ロゴを作ってくれる人いたら紹介してください。