Kotlin 向けのテストライブラリ kotassert を作りました

何番煎じか分かりませんが、Kotlin 向けのテストライブラリを作りました。

さて、Kotlin で JUnit + hamcrest を使ってテストを書くと、予約後である is に悩まされます。

assertThat(actual, `is`(expected))

これを解決するために kotlintestknit というライブラリが出ています。

knit はご存知 @ngsw_taro さんのライブラリです。

taro.hatenablog.jp

// kotlintest
actual shouldBe expected

// knit
actual.should be expected

上記で予約後問題は解決されるわけですが、エイゴチットモデキナイ日本人的にはぱっと見て分かるメソッド名にしたいわけですよ。

しばらく悩んで・・・

予約語がだめなら、大文字にすればいいじゃない。」

ということで、メソッド名を大文字にした assertion を呼び出せるテストライブラリ kotassert を作りました。

github.com

使い方はとても簡単ですし、日本人でも読みやすいと思います。

ちなみに API は、普段 C# で開発するときに使っている Chaining Assertionパクって インスパイアしています。いつもありがとうございます。

// assertThat(actual, `is`(expected)) と同じ
actual.Is(expected)

// assertThat(actual, `is`(not(expected))) と同じ
actual.IsNot(expected)

// assertThat(actual, `is`(true)) と同じ
actual.IsTrue()

// assertThat(actual, `is`(notNullValue())) と同じ
actual.IsNotNull()

「メソッド名の先頭が大文字なんて邪道だ!!」という声もあると思います。私も重々承知しています。けどテストコードということでそこは大目に見てもらって・・・。

ある程度、私が必要だと思った hamcrest の Matcher は用意しています。どういう API が用意されているかは READMEテスト をご覧ください。

実装自体も、ただ JUnit + hamcrest を呼び出しているだけなので、すぐに読めると思います。拡張メソッド万歳。

良かったらお使いください。気に入ったらスターくれると喜びます。