web-dev-qa-db-ja.com

Kotlin拡張機能をどのようにテストする必要がありますか?

Kotlinで拡張機能をユニットテストする方法を誰かに教えてもらえますか?それらは静的に解決されるので、静的メソッド呼び出しとしてテストする必要がありますか、それとも非静的としてテストする必要がありますか?また、言語はJavaと完全に相互運用可能であるため、Kotlin拡張関数のJavaユニットテストをどのように実行する必要がありますか?

16
TheTechWolf

静的かどうかに関係なく、メソッドをテストするには、実際のコードと同じようにメソッドを呼び出し、それが正しいことを行うことを確認します。

たとえば、この拡張メソッドがファイルcom/foo /Bar.ktで定義されていると仮定します。

fun String.lengthPlus1(): Int {
    return this.length + 1
}

Kotlinでテストを作成する場合(通常はKotlinコードをテストするために行います)、次のように記述します。

assertThat("foo".lengthPlus1()).isEqualTo(4);

あなたがそれをJavaで書くなら(しかし、なぜあなたはそれをするのですか?)

assertThat(BarKt.lengthPlus1("foo")).isEqualTo(4);
20
JB Nizet