tokuhirom's Blog

kotlin-power-assert-demo

kotlin 公式で power-assert が出てた。これは最高っぽい。 (まだできたてホヤホヤ Experimental です)

実際動かしてみて、その結果をレポジトリに置いておいた。 https://github.com/tokuhirom/kotlin-power-assert-demo

assertj/assertK などのアサーションライブラリは便利なのだのだけど、、

そこで、power-assert ですよ。

assertK でこう書いてたコードが

    val people = listOf(Person(name = "Sue"), Person(name = "Bob"))
    assertThat(people)
        .extracting(Person::name)
        .containsExactly("Sue", "Bob")

こう書いたら

    @Test
    fun testComplex() {
        val people = listOf(Person("Sue"), Person("Bob"))
        assert(people.map { it.name } == listOf("Susie", "Bob"))
    }

こうだ!

    Assertion failed
    assert(people.map { it.name } == listOf("Susie", "Bob"))
           |      |               |  |
           |      |               |  [Susie, Bob]
           |      |               false
           |      [Sue, Bob]
           [Person(name=Sue), Person(name=Bob)]

最高!

なお、multiplatform にも対応しているみたい。 とくに、kotlin/js とかでテスト書く時にはコレ使うと便利そうねぇ。 (kotlinx.test は便利だがマッチャの種類が少なめ。そこをこれでカバーできそう。 )