問題タブ [mockolate]
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.
apache-flex - Mockolate:バインドイベントをディスパッチしますか?
Mockolate にバインド イベントをディスパッチするように依頼することは可能ですか?
たとえば、次のクラスがあるとします。
モックが欲しい:
フィールドが変更されたpropertyChangeEvent
ときにディスパッチします。name
apache-flex - Mockolate: 突然 VerifyError を取得: 無効なオーバーライド
数週間前にユニットテストを書くためにmockolateを使い始めましたが、今でもうまく機能しています。突然、昨夜、mockolate を使用するすべてのテストで次のようなエラーが発生し始めました。
読んでみると、このエラーは通常、さまざまなバージョンの SDK でコンパイルされているさまざまな swfs/swcs が原因のようですが、モック化された SWC とソースの両方が同じ SDK バージョンでコンパイルされており、それはまったく変わっていません。しばらく。プロジェクトのソースとしてモコレートを含め、lib パスとして swcs を含めることさえ試みました。どんな提案でも大歓迎です。
-ホブ
apache-flex - FlexUnit 4 を使用して AsyncResponder をモックし、結果のハンドラー関数をモック オブジェクトでモックするにはどうすればよいですか?
Flex 4.5.1 で記述しているクラスの単体テストを、テストとモック フレームワークにそれぞれ FlexUnit 4 とMockolateを使用して記述しようとしています。カスタム イベントにas3-signalsを使用しています。
私が書いてテストしている機能は、 ArcGIS API for Flex内のQueryTaskクラスのラッパー クラス (QueryQueue)です。これにより、実行のために複数のクエリ タスクを簡単にキューに入れることができます。私のラッパーである QueryQueue は、すべてのクエリ応答が処理されたときにイベントを送出します。completed
インターフェイスは非常にシンプルです。
使用例を次に示します。
私のテストでは、現在 QueryTaskFactory および QueryTask オブジェクトをモックしています。クエリがキューに比較的簡単に追加されることを確認するなどの簡単なテスト。
execute
ただし、メソッドもテストできるようにしたいと考えています。このメソッドは、キューに追加されたすべてのクエリを実行する必要があります。すべてのクエリ結果が処理されると、completed
イベントが送出されます。テストでは、次のことを確認する必要があります。
execute
各クエリで一度だけ呼び出されますinProgress = true
結果が処理されていない間inProgress = false
結果が処理されたときcompleted
結果が処理されたときにディスパッチされますcanceled
呼び出されることはありません (有効なクエリの場合)- キュー内で行われる処理は、クエリ結果を正しく処理してパッケージ化します
これまでのところ、主に weltraumpirat から提供された回答のおかげで、項目 1 から 5 のテストを作成できます。現在、実行テストは次のようになっています。
メソッドは次のQueryQueue.execute
ようになります。
queryTaskResultHandler
上記のテスト 6 では、およびで返されるデータqueryTaskFaultHandler
が適切に処理されることをテストします。
つまり、completed
成功と失敗の結果を含むすべてのクエリ応答が返されるまで、イベントをディスパッチしません。
このプロセスをテストするには、モックされた各クエリ タスクの結果ハンドラーとエラー ハンドラーに返されるデータをモックする必要があると思います。
AsyncResponder
では、 FlexUnit を使用して作成された結果ハンドラーに渡されたデータをモック化し、モック化するにはどうすればよいでしょうか。
actionscript-3 - Mockolate-同じ引数を使用してモックで同じメソッドを呼び出すが、異なる結果を返す
AS3でのテスト用のモックを作成するためにMockolateとflexユニット4を使用しています。同じ引数を使用してモックで同じメソッドを複数回呼び出し、毎回異なる結果を返したい。基本的な例は次のとおりです。
これにより、次のようになります。
そしてエラー:
私が欲しいのは
例外はありません。つまり、テストに合格します。
私は次のようないくつかの選択肢を試しました:
と他の人は役に立たない。確かに私はここで何か簡単なものが欠けています。これは簡単なはずのようです。
みんなありがとう、
テオ。
actionscript-3 - モコレートでFileReference.dataをモックしますか?
私が取り組んでいるフレックス プロジェクトで FileReference をモックしようとしています。
名前やサイズなどの一部のプロパティのスタブは正常に機能しますが、データは機能しません。問題を示すコードは次のとおりです。
ブレークポイントを設定し、デバッガーで frMock をチェックすると、次のようになります。
ご覧のとおり、データはモックによって異なる方法で処理されます。
私はこの問題に数時間頭を悩ませてきましたが、これを理解するのに本当に役立つかもしれません.
更新:
このコードは、Flex ライブラリ プロジェクトまたは Flex プロジェクト (Air) として実行すると機能します。失敗するのは、コードがブラウザー プラグインで実行されるときです。ライブラリ プロジェクトのデバッガーでチェックすると、データ プロパティが [Inherited] 内にネストされておらず、他のプロパティと同じレベルにあることも示されます。
更新:
URLLoader で同じ問題が発生しましたが、今回は逆です。URLLoader のモックは、ブラウザー プラグインでテストを実行する場合にのみ機能します。
入力に応じて FileReference または URLLoader のいずれかを使用して、ローカルおよびリモートのファイル読み込みを処理するクラスを作成しているため、このクラスを完全に単体テストすることは効果的に防止されています。:(
maven - Flexunit、FlexMojos、および Mockolate を連携させるにはどうすればよいですか?
過去 2 日間、TeamCity でテストを実行できるように、FlexUnit、FlexMojos、および Mockolate を連携させようとしましたが、うまくいきませんでした。
私は現在、FlexMojos と機能する FlexMojos-flexunit を使用する Teamcity のプロジェクトを 1 つ持っていますが、そのプロジェクトは Mockolate を使用していません。
そのプロジェクトの pom は次のようになります。
それは正常に動作します。ただし、Mockolate への参照を追加すると、FlexUnit 内のある種の競合するクラスが原因でビルドが失敗します。
このリンクを読んで、flexMojos-flexunit への参照を削除し、pom で FlexUnit4 への独自の参照を与える必要があることを確認しました。私はそれをしました。ただし、次の読み取りエラーが表示されます。
動作していない現在のPOMは次のようになります。
FlexUnit4 swc は私のアーティファクトに存在し、IntelliJ はビルドを試みる前に Maven で警告やエラーを表示しません。
助けてくれてありがとう。
apache - Mockolate 検証エラー: 無効なオーバーライド.. Flex SDK 4.10 の更新後
アプリケーションのフレックス sdk を 4.10 にアップグレードして以来、mockolate を使用する単体テストの実行中に検証エラーが発生しました。
ByteArray
これらは、メソッド シグネチャで a が使用されているインターフェイスをモックするときに発生するようです。
インターフェースの例:
テストクラスの例:
flexmojos 6.0.1 でテストをコンパイルして実行すると、次のエラーがスローされます。
VerifyError: エラー #1053: mockolate.generated.IFileSystemHelper8F2B5D281827800A824B85B588C6F2A08AE814ED の IFileSystemHelper8F2B5D281827800A824B85B588C6F2A08AE814ED の無効なオーバーライド
私の最初の疑いは、playerglobal(またはこの場合はairglobal)のsdkバージョンの問題であったため、sdk 4.10でmockolate(およびflexunit)を再コンパイルしましたが、結果はありませんでした。
動作しているように見える唯一のことは、メソッド シグネチャから ByteArray 型を削除することです...しかし、それは実際にはオプションではありません :-) (これはこれまで問題になったことはありません)
同様の問題を抱えている人はいますか?
ありがとう
actionscript-3 - Mockolate を使用して配列を返すよりもゲッターをモックする
オブジェクトでゲッターを呼び出す関数の単体テストを作成しています。ゲッターは配列を返す必要がありますが、例外がスローされます。
ゲッターを次のように嘲笑しました。
私のゲッターはオブジェクトインターフェイスで定義されています:
ゲッター関数またはモック ステートメントを書き直す必要がありますか?
actionscript-3 - 単体テストのために Mockolate をデバッグする方法
での単体テスト中にactionscript-3
、mockolate
かなりの数の問題/エラーが発生しました。
Mockolate のエラーとデバッグは文書化されておらず、検索しても結果が得られないため、これらの問題を解決するのは非常に困難です。