問題タブ [extension-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
82 参照

unit-testing - Companion オブジェクト内のモック拡張関数

組織の問題のために、別のクラス (クラス B) のコンパニオン オブジェクト内に拡張関数 (A.extension()) を定義するクラス (クラス A) があります。

私のテストでは、次のものが必要です。

  • 実際のクラス A インスタンスを使用するには。
  • A.extension() をモックします。
  • クラス B のモック インスタンスを使用するには。

MockK-library を使用すると、その拡張機能を正常にモックできません。私はもう試した:

結果: 拡張関数のモックされていないバージョンを実行しようとします。

結果: コンパニオン オブジェクトが見つかりません。

結果: コンパイル エラー -> 'extension' はメンバーであると同時に拡張機能です。そのような要素への参照は許可されていません。

これをモックする方法に関して何か不足していますか? このモックが可能になるのを妨げるコード構造に関して、私は何か間違ったことをしていますか?

どんな助けでも大歓迎です。

0 投票する
2 に答える
98 参照

android - Kotlinで複数のレシーバーを持つ拡張機能を作成するには?

拡張機能にいくつかのレシーバーが必要です。たとえば、関数でとインスタンスhandleの両方のメソッドを呼び出せるようにします。CoroutineScopeIterable

私はこれがうまくいくかもしれないと思った:

しかし、それは私にエラーを与えます:

パラメータで関数を作成できることは知っていますが、

単一の機能に対して複数のレシーバーを使用することは可能ですか?パラメーターなしでそれを行う方法は?