問題タブ [moles]
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.
visual-studio-2010 - Moles は、クラスの変更後に新しいメソッド シグネチャを表示しません
私が持っていた
ほくろでこのプライベートを使用しました
今、私は方法を次のように変更しました:
しかし、ほくろは私に新しい署名を与えません。Sill MVoo.DooInt32しかし、私はMVoo.DooStringObject を期待しています
ほくろの参照を削除し、きれいにして再構築しました。これまでのところ肯定的な結果はありません。
何か案は?
c# - Molesを使用したテストのコードカバレッジ情報はありません
私は過去数日間OpenCoverに慣れてきましたが、Molesを使用したテストではカバレッジ情報が生成されないことに気付きました。
[HostType("Moles")]
問題を切り分けるための小さなソリューションを作成しましたが、コードカバレッジは属性を持たないテストに対してのみ生成されることがわかりました。
周りを読んで、これとこれが私の問題のNCoverに相当するように見えることを発見しました。彼らは、それはプロファイラーとカバレッジツールを実行しているMolesと関係CLRMONITOR_EXTERNAL_PROFILERS
があり、Molesと同時に複数のプロファイラーを実行できるように設定できる環境変数があると言います-これはここにあると思います解決策はありますが、100%確信はありません。変数の値はOpenCoverプロファイラーの名前になると思います-誰かがこの名前を知っていますか?
誰かがOpenCoverをMolesで実行することに成功しましたか?できますか?
c# - System.Diagnostics.EventLog の Mole タイプを作成できません
TDD と Moles を使用して、(さらに別の) Windows サービスを構築しています。このプロジェクトにはSystem.Dagnostics.EventLogの拡張機能が含まれており、ログ メッセージに入力パラメーター Exception オブジェクトの詳細が含まれています。例外の詳細と内部例外の詳細がイベント ログに正しく書き込まれていることを確認する必要があります。拡張機能は、最終的に System.Dagnostics.EventLog.WriteEntry を呼び出します。
System.Diagnostics.Moles.MEventLog.WriteEntry に迂回路を挿入したい。ただし、MEventLog は存在しません (SEventLog はありません)。イベント ログの相互作用を分離する方法についてのアイデアはありますか?
moles - Moles 0.94 のインストールで pex.powertool.x64.msi が見つからない
最新の Moles/Pex 0.94 をインストールしようとしていますが、pex.powertool.x64.msi が見つからないため、以前のバージョンをアンインストールできません。ここにある複数のコンピューターでこのファイルを検索しましたが、どこにも見つからないようです。このファイルはどこかで入手できますか、または pex/moles を手動で削除する方法はありますか?
c# - x64 WindowsServer2003でのMolesテストの対象外
何らかの理由で、OpenCoverはWindows Server 2003(64ビット)でのほくろを使用したテストをカバーしていません。私は32ビットのWindows7マシンでそれを解決する同様の質問を提起しましたが、何らかの理由でWindowsServerマシンで環境変数を設定しても違いはありません。
x64プロファイラーに別のCLSIDはありますか?それとも、これは別の問題でしょうか?
再現する手順
次の3つの方法を使用して、VisualStudioで新しいプロジェクトを作成します。
次に、次のようなテストプロジェクトを作成します。
上記をコンパイルするには、ConsoleApplication2リファレンスを右クリックして[モルアセンブリの追加]を選択し、[モルアセンブリの追加]を行う必要があります。
次のコマンドでOpenCoverを実行します。
同等の64ビットマシン:
results.xmlファイルでReportGeneratorを実行します。
推測される結果
成功した場合(私の32ビットWindows 7マシンのように)、レポートにはmethod3がカバーされている(method2Testで呼び出されます)と表示され、次のようになります。
ただし、64ビットWindows Serverで実行すると、結果は次のようになります。
どちらの場合も、すべてのテストに合格しますが、64ビットWindowsServerでMolesを使用したテストのカバレッジ情報は取得されていません。
これにより、問題がより明確に説明されることを願っています。さらに情報が必要な場合はお知らせください。
ありがとう、ジャック
linq-to-sql - DataContextをMOLEする方法
単体テストがデータベースにヒットしないように、データコンテキストをモル化する方法を理解しようとしています。
私が達成したいのは、データコンテキストが作成されたがデータベースに接続せず、GetTableを(リポジトリ経由で)呼び出すと、List.AsQueryable()(単体テストで自分で作成したもの)を返すことです。
moles - System.Environment クラスの Mole を作成できません
単体テストでの動作を置き換えたいのですが、アセンブリのEnvironment.GetFolderPath
モルを生成した後System
、System.Moles
アセンブリに type の定義が含まれていませんMEnvironment
。
c# - レガシーコードのユニットテスト:「抽出とオーバーライド」の制限とJustMock / TypeMock / molesの制限?
次の条件が与えられます。
- テストカバレッジがまったくない、非常に古くて大きなC#レガシーコードベース
- (ほぼ)すべてのクラスは何らかのインターフェースから派生しています
- 何も封印されていない
Extract&override +(RhinoMocksなど)を使用する場合と比較して、JustMockやTypeMockなどのプロファイラーAPI駆動型ソリューションを使用することの実際的な利点は何ですか?TypeMock / JustMockなどを使用する必要がある場合、プライベート/保護を回避する以外に、私が気付いていないケースはありますか?特に、いずれかの製品に切り替えた方のご経験をお待ちしております。
extract&overrideを使用すると、古いレガシーコードを処理する際のすべての問題が解決されるようであり、リファクタリングは非常に単純であり、バグが発生する可能性は非常に小さいようです。より少ないテストコードを書くことの利点はありますか?仮想保護されたものが少ない、より美しいクラス?パブリックメソッドはそのような古いレガシーコードベースの内部では大きすぎる可能性があるため、最初にプライベートメソッドを分離してテストすることは非常に役立つことを理解していますが、現時点では「取得」していません。
抽出とオーバーライドが何であるかわからない場合:ここを参照してください。