問題タブ [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.
c# - ref 引数を使用してメソッドをモックするための構文
ref 引数を持つメソッドをモックできないという問題があります。モックしたいメソッドのシグネチャは次のとおりです。
私はこのようにそれを嘲笑しようとしました:
しかし、コンパイラは「ref」キーワードが欠落していることを教えてくれますが、このように試してみると
ref が無効な式であるというエラーが表示されます
残念ながら、Google はここでは役に立ちません。:( 何か案は?
mstest - テスト ランナーとしての MSTest.exe での moles.runner.exe の使用
MSTest.exe をランナーとして提供して、moles.runner.exe を実行すると、エラーが表示されます。
コマンドラインは次のとおりです。
出力は次のとおりです。
/d (診断モード) を指定して moles.runner.exe を実行すると、次のように表示されます。
アセンブリ名を最初の引数としてテスト ランナーに渡さないように、moles.runner.exe をどのように指示できますか?
moles - MolesによるNCoverのサポート
私たちのプロジェクトでは、NCoverを使用してコードカバレッジを測定します。Molesを使用するテストを測定する場合、それらのクラスのコードカバレッジは測定されません(0%)。これは、.NETプロファイラーを使用するMolesとNCoverの両方と関係があります。インターネットで検索した後、コマンドプロンプトで次のことを試しましたが、結果はありませんでした。
後ろの数字COR_PROFILER
は、NCover.Lib.x86.dll
以前にzippyに登録したGUIDです。またCOR_ENABLE_PROFILING=1
、env.varとして追加しても役に立ちません。
このプロファイラーチェーンを機能させた人、または.NETプロファイラーチェーンの経験がある人はいますか?
unit-testing - MolesVS2010のWindowsサービスの単体テストが失敗する
私は比較的小さくて単純なWindowsサービスを作成しており、Molesを使用して単体テストをモックしています。コードが小さいため、コードをスタブでセグメント化するのではなく、Molesインストルメンテーションを使用することにしました。moledアセンブリに対して単体テストを実行すると、エラーが発生します。
InitilaizationDetectsMissingMonitorDirectoryが失敗しました:テストメソッドFtpDirWatcher.Test.FileWatcherTest.InitilaizationDetectsMissingMonitorDirectoryが例外をスローしました:Microsoft.Moles.Framework.Moles.MoleInvalidOperationException:
Molesでは、テストをインストルメント化されたプロセスで行う必要があります。
Visual Studio Testで、単体テストメソッドに次の属性を追加します。
[試験方法]
[HostType( "Moles")]//この属性を追加します
public void Test(){...}
「モールは、計装されたプロセスでテストを行う必要がある」とはどういう意味かわかりません。「IN」は、これが通常の「Molesではテストをインストルメント化されたプロセスにする必要がある」ではないことを意味することに注意してください。私はドキュメントを振り返って、見逃したものがあるかどうかを確認しました。私は明らかにまだ重要な何かを見逃しています。
ターゲットアセンブリ( "FtpDirWatcher")は、実際にMolesによってインストルメント化され(MFileWatcherオブジェクトの存在によって証明されます)、テストメソッドに適切な属性が設定されています。ターゲットプロパティをメソッドに変換しようとしても無駄になりました。どうしたの?
これは凝縮されたコードなので、批判はありません!
どんな助けでも大歓迎です!
更新:次のビルド出力を追加しました。上記のコードにビットネス設定を含めて、問題にならないことを示しました。
------再構築すべて開始:プロジェクト:共通、構成:デバッグx86 ------
Common-> C:... \ Common \ bin \ x86 \ Debug \ Common.dll
------再構築すべて開始:プロジェクト:FtpDirWatcher、構成:デバッグx86 ------
FtpDirWatcher-> C:... \ FtpDirWatcher \ bin \ Debug \ FtpDirWatcher.exe
------再構築すべて開始:プロジェクト:FtpDirWatcher.Test、構成:デバッグx86 ------
Microsoft Moles v0.94.51023.0- http: //research.microsoft.com/moles-.NET v4.0.30319
Copyright(c)MicrosoftCorporation2007-2010。全著作権所有。
00:00:00.00>モル
00:00:02.37>モルジェネレータ0エラー、0警告
FtpDirWatcher.Test-> C:... \ FtpDirWatcher.Test \ bin \ x86 \ Debug \ FtpDirWatcher.Test.dll ==========すべての再構築:3成功、0失敗、0スキップ=== =======
html-agility-pack - Moles を HtmlAgilityPack で使用する場合の TypeInitializationException
Moles を使用して、別のアセンブリで非静的メソッドをテストしようとしています。[HostType("Moles")] タグなしでテストを実行すると、テストは正常に実行されます。置き換えると、次のエラーが表示されます。
「'HtmlAgilityPack.HtmlNode' の型初期化子が例外をスローしました。」
同じ方法で実行するコード サンプルを添付しました。
どんな助けでも素晴らしいでしょう!
単体テストによって呼び出されるクラス/メソッド
単体テスト
unit-testing - DateTime で Moles を使用する
私は単体テストで Moles を使い始めており、ドキュメンテーションに少し苦労しています。
DateTime.Now をほくろしたい。
mscorlib への参照を追加するという古い方法を見回した場合は、そのための stubx ファイルを追加します ([新しい項目を追加] -> [テスト用のスタブとモール])。
'Stubs and Moles for Testing' テンプレートは廃止されました。代わりに、参照を右クリックして [Add moles assembly] を選択するだけで問題ありません。
VS2010 では、mscorlib への参照を直接追加することはできません。"System" への参照があるためです。オブジェクト ブラウザーで DateTime をこの名前空間の一部として表示できるので、これは問題ありません。
システム参照用のモール アセンブリを追加して再構築しても、MDateTime を解決できません。
助言がありますか ?
.net - XUnitでのMolesの使用-間違ったdllバージョン
ユニットテストで使用するようにMolesを設定しようとしています。私たちはxunitを使用しているので、私はusing
moles()に付属するXunit拡張機能ですMicrosoft.Moles.Framework.Xunit
。ただし、Xunit 1.7を実行しているため、Molesはバージョン1.6.1.1521(を使用FileLoadException
)を実行していないと文句を言っています。
Molesマニュアル(28ページ)には次のように書かれています。
xUnit.netバージョン:
1.5.0.1479(他のxUnit.netバージョンの場合、ソースから属性を再コンパイルします)
これは私が立ち往生しているところです-このxunit拡張機能のソースコードはどこかで入手できますか?または、Molesが必要とする特定のバージョンのxunitを使用する必要がありますか?
unit-testing - ほくろと SharePoint の行動タイプ
次のコードに問題があります。
エラー: ファイルまたはアセンブリ 'System.Moles, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0ae41878053f6703' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
ソース コードの Behavoir アセンブリを .NET 4 に再構築しようとしましたが、うまくいきませんでした。v0.94を使用しています。
どんな助けでも感謝します。
.net - Pex and Moles プロジェクトはまだ活動中ですか?
以前は月に 2 つの新しいバージョンをリリースしていましたが、2010 年 10 月以降、新しいバージョンをリリースしていません。私はこれを見つけました。しかし、彼らが MSDN のサポート フォーラムを閉鎖したという事実は、プロジェクトが前進しないのではないかと私に思わせます。現在のプロジェクトで使用していますが、手遅れになる前に別のフレームワークに置き換えることを考えています。
moles - VS 2010 SP1 で Moles 0.94.51023.0 エラーが発生する
Moles 0.94.51023.0 を使用して VS 2010 SP1 で System.ServiceModel v4 をモール化しようとしていますが、次 のエラーが引き続き発生します。 ' (アセンブリ参照がありませんか?) [my-test-project.Test\obj\Debug\Moles\ssm\mgcsproj] my-test-project.Test\mgcs 293022 43
このインターフェイスは、オブジェクト ブラウザーで検索すると System.ServiceModel.dll v2.0.5.0 (Silverlight) でしか見つからないため、.NET 4.0 の System.ServiceModel.dll から削除されたようです。
これは、moles.exe を使用して cmdline で再現できます。moles ファイルを変更して、指定した型名のみを生成しようとしましたが、違いはないようです。これは、VS2010 SP1 にアップグレードする前は問題なく機能していたので、バグだと思われますが、助けていただければ幸いです。
ありがとうニック