17

Kotlinの拡張機能は素晴らしいです。しかし、それらに対して単体テストを実行するにはどうすればよいでしょうか? 特に、Android SDK が提供するクラス (Context、Dialog など) のもの。

以下に 2 つの例を示します。単体テストの方法を誰かが共有できるかどうか、または本当に単体テストを行いたい場合に別の方法で記述する必要があるかどうかを教えてください。

fun Context.getColorById(colorId: Int): Int {
    if (Build.VERSION.SDK_INT >= 23)
        return ContextCompat.getColor(this, colorId)
    else return resources.getColor(colorId)
}

fun Dialog.setupErrorDialog(body : String, onOkFunc: () -> Unit = {}): Dialog {
    window.requestFeature(Window.FEATURE_NO_TITLE)
    this.setContentView(R.layout.dialog_error_layout)

    (findViewById(R.id.txt_body) as TextView).text = body
    (findViewById(R.id.txt_header) as TextView).text = context.getString(R.string.dialog_title_error)
    (findViewById(R.id.txt_okay)).setOnClickListener{
        onOkFunc()
        dismiss()
    }
    return this
}

どんな提案も役に立ちます。ありがとう!

4

1 に答える 1