Kotlin関数のMockito ArgumentCaptor

fweigl:

次のように、インターフェイスの実装を引数として取る関数を考えます。

interface Callback {
    fun done()
}

class SomeClass {        

    fun doSomeThing(callback: Callback) {

        // do something

        callback.done()

    }    
}

この関数の呼び出し元をテストしたいときは、次のようなことができます

val captor = ArgumentCaptor.forClass(Callback::class)
Mockito.verify(someClass).doSomeThing(captor.capture())

コールバックが呼び出されたときに他のクラスが何をするかをテストするために、私は次に行うことができます

captor.value.done()

質問:コールバックインターフェイスを次のような高次関数に置き換えた場合、どうすれば同じことができますか?

fun doSomeThing(done: () -> Unit) {

    // do something

    done.invoke()

}

これはArgumentCaptorで行うことができ、どのクラスで使用する必要がありますか ArgumentCaptor.forClass(???)

mfulton26:

nhaarman / mockito-kotlinをお勧めします:KotlinでのMockitoの使用

これは、型パラメーターを具体化したインライン関数によってこれを解決します

inline fun <reified T : Any> argumentCaptor() = ArgumentCaptor.forClass(T::class.java)

ソース:mockito-kotlin / ArgumentCaptor.kt at a6f860461233ba92c7730dd42b0faf9ba2ce9281・nhaarman / mockito-kotlin

例えば:

val captor = argumentCaptor<() -> Unit>()
verify(someClass).doSomeThing(captor.capture())

または

val captor: () -> Unit = argumentCaptor()
verify(someClass).doSomeThing(captor.capture())

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Kotlin関数のMockito ArgumentCaptor

分類Dev

kotlinとArgumentCaptor-IllegalStateException

分類Dev

ArgumentCaptor-引数が異なります

分類Dev

Mockito.when()内の2回目のArgumentCaptor.capture()

分類Dev

mockitoはArgumentCaptorとの相互作用を検証します

分類Dev

Kotlinの@Captorアノテーション付きのArgumentCaptor

分類Dev

MockitoのArgumentCaptorクラスを使用して子クラスを照合する

分類Dev

Mockitoモックが呼び出されない-ArgumentCaptorが無視される

分類Dev

Mockitoを使用したレトロフィットAPI呼び出しのユニットテスト-ArgumentCaptor

分類Dev

ArgumentCaptorなしの可変オブジェクトのマッチング

分類Dev

引数が異なる後続のコールバックを検証するためのArgumentCaptorとInOrder

分類Dev

検証済みメソッドの呼び出し後に値属性を変更すると、ArgumentCaptor.getValue()のassertThatからの誤検知

分類Dev

argumentCaptorを使用したテスト

分類Dev

ArgumentCaptorをスタブに使用する方法は?

分類Dev

ログインテストがArgumentCaptorで機能しない

分類Dev

Kotlinとmockito:関数の先頭でvarargを使用する場合の型の不一致

分類Dev

Mockitoを使用して、Kotlinの関数であるパラメーターを照合できますか?

分類Dev

KotlinのPublishSubject onError関数

分類Dev

ViewModelのKotlin高階関数

分類Dev

assertjのkotlin拡張関数

分類Dev

2つの引数を持つ関数のMockitoテスト

分類Dev

Kotlinの関数スタイルの主関数引数の解析

分類Dev

Kotlin関数宣言:中括弧の前の等号

分類Dev

Kotlin関数宣言:中括弧の前の等号

分類Dev

Kotlinの拡張関数の多形

分類Dev

Mockito、void関数のSystem.outへのチャネル出力?

分類Dev

Kotlinのスワップ関数

分類Dev

Kotlinリストのテール関数

分類Dev

Kotlinのスワップ関数

Related 関連記事

  1. 1

    Kotlin関数のMockito ArgumentCaptor

  2. 2

    kotlinとArgumentCaptor-IllegalStateException

  3. 3

    ArgumentCaptor-引数が異なります

  4. 4

    Mockito.when()内の2回目のArgumentCaptor.capture()

  5. 5

    mockitoはArgumentCaptorとの相互作用を検証します

  6. 6

    Kotlinの@Captorアノテーション付きのArgumentCaptor

  7. 7

    MockitoのArgumentCaptorクラスを使用して子クラスを照合する

  8. 8

    Mockitoモックが呼び出されない-ArgumentCaptorが無視される

  9. 9

    Mockitoを使用したレトロフィットAPI呼び出しのユニットテスト-ArgumentCaptor

  10. 10

    ArgumentCaptorなしの可変オブジェクトのマッチング

  11. 11

    引数が異なる後続のコールバックを検証するためのArgumentCaptorとInOrder

  12. 12

    検証済みメソッドの呼び出し後に値属性を変更すると、ArgumentCaptor.getValue()のassertThatからの誤検知

  13. 13

    argumentCaptorを使用したテスト

  14. 14

    ArgumentCaptorをスタブに使用する方法は?

  15. 15

    ログインテストがArgumentCaptorで機能しない

  16. 16

    Kotlinとmockito:関数の先頭でvarargを使用する場合の型の不一致

  17. 17

    Mockitoを使用して、Kotlinの関数であるパラメーターを照合できますか?

  18. 18

    KotlinのPublishSubject onError関数

  19. 19

    ViewModelのKotlin高階関数

  20. 20

    assertjのkotlin拡張関数

  21. 21

    2つの引数を持つ関数のMockitoテスト

  22. 22

    Kotlinの関数スタイルの主関数引数の解析

  23. 23

    Kotlin関数宣言:中括弧の前の等号

  24. 24

    Kotlin関数宣言:中括弧の前の等号

  25. 25

    Kotlinの拡張関数の多形

  26. 26

    Mockito、void関数のSystem.outへのチャネル出力?

  27. 27

    Kotlinのスワップ関数

  28. 28

    Kotlinリストのテール関数

  29. 29

    Kotlinのスワップ関数

ホットタグ

アーカイブ