私たちは、モックできないフレームワークオブジェクトに大きく依存するいくつかのクラスに対してユニットテストで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. Moles + SPGroupcollection issue
- 2. Missing Add Molesアセンブリ
- 3. NUnitとMolesエラー
- 4. MVCとMolesテストプロジェクト
- 5. Microsoft Moles:循環参照エラー?
- 6. Molesと内部クラス
- 7. .NET MolesスタブのFallthrough動作
- 8. MVC 3のPexとMoles?
- 9. NCover 1.5.8 Moles/PexとNUnit
- 10. Microsoft Fakes and .Net 4.0
- 11. SubSonic "Or" AND "AND"
- 12. mySQL - WHERE AND AND OR
- 13. EOR/XORとANDでANDキャリーフラグ
- 14. SQL演算子:AND AND OR
- 15. OpenSSL、RSA and Winsock and C++
- 16. Java OutOfMemory in Hibernate、Quartz and and JavaMail
- 17. クエリのパフォーマンスINNER JOIN ON AND AND
- 18. SQL ServerのANDとORとAND
- 19. Molesを使って仮想メソッドをテストするには?
- 20. .net framework 4.0をサポートするMolesのバージョンはありますか?
- 21. 静的コンストラクタでMolesが機能しない
- 22. ユニットテストではなく、System.ConfigurationにMolesを使用してオーバーライドする
- 23. Molesを使用してSystem.Net.Socketsをモックする
- 24. ユニットテストCRM 2011ワークフローアクティビティをMolesフレームワークを使用して
- 25. 他のプロセスではMolesを使用したフック方法
- 26. ユニットテストとpesとmolesによるDB分離
- 27. サブソニッククエリ条件A AND((条件B AND条件C)OR(条件D AND条件E AND条件F)
- 28. Drupal 6 and Backlinks
- 29. iPhone:UIBarButtonSystemItemSave and Localization
- 30. Python cgi and stdin
合意。このような場合は、スタブを使用する必要があります。問題は、これらのコンポーネントがアプリケーションの制御の範囲外であるため、Molesラッパーアセンブリを通じて迂回することができないことです。これらは、IISなどのオペレーティングシステムや他のシステムによって処理されるプロセスなので、迂回することはできません。 –