私たちは、モックできないフレームワークオブジェクトに大きく依存するいくつかのクラスに対してユニットテストでMolesを使用して成功しました。私たちはSystem.Threading.ManualResetEvent
とSystem.Threading.AutoResetEvent
のロードブロッキングに遭遇しましたが、これは不可解な理由からモルに抵抗するようです。具体的には、System.Threading.Moles.MManualResetEvent.AllInstances.
には代理人を設定できるメソッドはありません。 System.Threading.Thread
,System.Threading.Mutex
およびSystem.Threading.ManualResetEventSlim
は全てモル能があり、サポートがになるはずです。それがなぜ、あるいは私たちが間違っているのか誰にも分かりませんか?Moles and System.Threading.ManualResetEvent
2
A
答えて
1
これは本当に問題には答えていませんが、「ロック解除可能な」オブジェクトをモックするために次の一般的なテクニックを使用することができます。から必要なメソッドとプロパティを含むインターフェイス、たとえばIManualResetEvent
を定義し、クラスManualResetEventAdapter
は、IManualResetEvent
を実装し、実際にはManualResetEvent
をラップします。その後、アプリケーションのどこでもIManualResetEvent
を使用してください。これは、IManualResetEvent
を必要とするクラスに常にManualResetEventAdapter
を渡すように指定できるので、依存性注入フレームワークをすでに使用している場合に特に便利です。
関連する問題
- 1. Missing Add Molesアセンブリ
- 2. NUnitとMolesエラー
- 3. Moles + SPGroupcollection issue
- 4. MVCとMolesテストプロジェクト
- 5. Molesと内部クラス
- 6. Microsoft Moles:循環参照エラー?
- 7. MVC 3のPexとMoles?
- 8. NCover 1.5.8 Moles/PexとNUnit
- 9. .NET MolesスタブのFallthrough動作
- 10. Microsoft Fakes and .Net 4.0
- 11. Where And And after $
- 12. SubSonic "Or" AND "AND"
- 13. matlab AND excel and indexing
- 14. mySQL - WHERE AND AND OR
- 15. SQL WHERE、OR AND AND
- 16. ユニットテストではなく、System.ConfigurationにMolesを使用してオーバーライドする
- 17. .net framework 4.0をサポートするMolesのバージョンはありますか?
- 18. ユニットテストとpesとmolesによるDB分離
- 19. Molesを使って仮想メソッドをテストするには?
- 20. 静的コンストラクタでMolesが機能しない
- 21. 他のプロセスではMolesを使用したフック方法
- 22. Molesを使用してSystem.Net.Socketsをモックする
- 23. ユニットテストCRM 2011ワークフローアクティビティをMolesフレームワークを使用して
- 24. OpenSSL、RSA and Winsock and C++
- 25. EOR/XORとANDでANDキャリーフラグ
- 26. SQL演算子:AND AND OR
- 27. R data.table%like like AND AND
- 28. PHP IF IF AND AND not working
- 29. * AND *
- 30. ネストされたIF(OR(AND(AND(AND)excel function
合意。このような場合は、スタブを使用する必要があります。問題は、これらのコンポーネントがアプリケーションの制御の範囲外であるため、Molesラッパーアセンブリを通じて迂回することができないことです。これらは、IISなどのオペレーティングシステムや他のシステムによって処理されるプロセスなので、迂回することはできません。 –