Kotlin 向けのテストライブラリ kotassert を作りました
何番煎じか分かりませんが、Kotlin 向けのテストライブラリを作りました。
さて、Kotlin で JUnit + hamcrest を使ってテストを書くと、予約後である is
に悩まされます。
assertThat(actual, `is`(expected))
これを解決するために kotlintest や knit というライブラリが出ています。
knit はご存知 @ngsw_taro さんのライブラリです。
// kotlintest actual shouldBe expected // knit actual.should be expected
上記で予約後問題は解決されるわけですが、エイゴチットモデキナイ日本人的にはぱっと見て分かるメソッド名にしたいわけですよ。
しばらく悩んで・・・
「予約語がだめなら、大文字にすればいいじゃない。」
ということで、メソッド名を大文字にした assertion を呼び出せるテストライブラリ kotassert
を作りました。
使い方はとても簡単ですし、日本人でも読みやすいと思います。
ちなみに 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 を呼び出しているだけなので、すぐに読めると思います。拡張メソッド万歳。
良かったらお使いください。気に入ったらスターくれると喜びます。