問題タブ [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.

0 投票する
1 に答える
1046 参照

visual-studio-2010 - Moles / VS2010 SP1の問題-エラー32、終了コード-1002がMoles0.94.51023.0でmstestを構築しています

2011年6月20日更新 このエラーが発生する前に、テストプロジェクトをビルドできるのは1回か2回だけです。これが解決されるまで、Molesは私には使用できません。obj/binを削除してVisualStudioを閉じたり再度開いたりすることは実用的ではありません。

エラー

エラー32コマンド""C:\ Program Files \ Microsoft Moles \ bin \ moles.exe "@C:\ src \ qp \ mvc3 \ Solution \ QP.Tests.Moles \ obj \ Debug \ Moles\moles.args"が終了しましたコード-1002で。QP.Tests.Moles

説明

nunitでmolesを使おうとしていましたが、問題が発生しました...そこで、1回のテストで新しいmstestプロジェクトを作成しました。テストが構築され、SUTにデバッグして、HttpContextに期待される値が含まれていることを確認できました。その後のテストプロジェクトのビルドの試みは、上記で失敗します。

注:私はresharper 6 EAPを実行しています(私は知っています、私は知っています)が、mstestランナーを無効にしました。また、これはビルドエラーです。

私が試したこと

テストプロジェクトでobj/binディレクトリの再構築、クリーンアップ、および削除を試みました。

コード

0 投票する
2 に答える
317 参照

params - Moles で params キーワードを使用してメソッドをほくろ/モックする方法はありますか?

params キーワードを使用してメソッドをモレ/スタブ/モックする方法はありますか?

これは、私がモル/スタブしようとしているメソッドの例です:

私はそれを次のようにほくろしようとしました:

次のコンパイル エラーが発生します。

'; 予想される」および「予想されるタイプ」

params キーワードを強調表示します。

0 投票する
1 に答える
213 参照

visual-studio-2008 - App.Config からのデータの取得が VS 2008 Framework 3.5 で機能しない

Unittest で Moles を使用している場合、configurationManager を使用して appconfig から値を取得することはできません。

私はこれが既知の問題であることを知っていますが、次の解決策を使用して偽造とは別にこの問題を解決するための良い回避策 (いくつかのトリック) を見つけることができるかどうか疑問に思っています http://social.msdn.microsoft.com/Forums/en/pex/thread /9b4b9ec5-582c-41e8-8b9c-1bb9457ba3f6

ありがとう!!!

0 投票する
0 に答える
330 参照

moles - モールとバインディング リダイレクト

私が持っているシナリオはかなり一般的です.1つのナゲットパッケージはV1.0を使用しており、別のナゲットパッケージはV1.1を使用しているため、バインディングリダイレクトを追加する必要がありました. ただし、Moles ランナーは、App.config ファイルとアセンブリ構成ファイルの両方でバインディング リダイレクトを無視しているようです。

App.config をロードするには、次のコードを使用しています: How To Read UnitTest Project's App.Config From Test With HostType("Moles")

何か案は?

時間がかかりましたが、Binding Redirect の動作を模倣する方法を見つけました。これは私がそのために行ったコードです。これを Wiki のままにして、他のユーザーがこのコードを改善できるようにします。

0 投票する
1 に答える
538 参照

mocking - インデックス付きプロパティをモックするための Mole

Moles を使用して構成ファイル内の 1 つの項目を「迂回」する方法を探しています。私がすることができます:

これは正常に動作しますが、テストしようとしているクラスは ConfigSections を含む他の構成設定を使用しており、Moles 迂回路がこれを壊しているようです。セクション全体ではなく、特定の値のみを置き換えたい。TypeMock では、次のことができます。

Isolate.WhenCalled(() => ConfigurationManager.AppSettings["MyKey"]).WithExactArguments().WillReturn("MyValue");

TypeMock を使用して configurationManager をモックすると、テストは成功しますが、Moles バージョン (同じことを行う必要があるように見えます) を使用すると失敗します。

ほくろを使用して TypeMock のように振る舞う方法についての助けをいただければ幸いです。

0 投票する
2 に答える
689 参照

.net - .NETでの非仮想メソッドのモック/スタブ

Microsoft Molesのような非仮想(または静的)メソッドをスタブできる.NETモックまたはスタブフレームワークは何ですか?RhinoMocksのようなものがあるといいでしょうAssertWasCalled

0 投票する
2 に答える
803 参照

static - Molesは静的コンストラクターでは機能しません

静的コンストラクターでMole型が機能しないという問題が発生しています。問題を説明するために、2つの簡単な例を作成しました。

私は次のような単純なインスタンスクラスを持っています:

私はこれについて次のように単体テストを行っています:

これは問題なく動作します。

ただし、呼び出し元のクラスを静的に変更すると(Moledクラスではなく、呼び出し元のクラス)、Molesは機能しなくなります。

それに応じてユニットテストを変更します。

...Molesは機能しなくなりました。このテストを実行すると、「ファイル'd:\ blah \ blah\test.txt'が見つかりませんでした」というエラーが表示されます。これは、MolesがFileSystemクラスを担当しなくなったために発生します。そのため、単体テストは、ファイルシステム上でファイルを探している元の実装を呼び出しています。

したがって、唯一の変更点は、Moledメソッドが呼び出されるクラスが静的になったことです。Moledクラスまたはメソッドを変更していませんが、それらはまだインスタンスタイプであるため、静的クラスをモックする場合のように、Implementation.Moles.SFileSystem構文を使用できません。

静的メソッド/コンストラクター内でMolesを動作させる方法を誰かが説明してくれませんか?

どうもありがとう!!!

0 投票する
1 に答える
969 参照

visual-studio-2010 - Visual Studio2010SP1にMolesをインストールできません

ここにあるダウンロードを使用してMolesをインストールしようとしています(Pexは非営利目的でのみ無料で利用できるため、Pexは使用しません)(これはx86バージョンであり、x64バージョンも試しました)。

インストーラーはエラーなしで実行され、Molesが正しくインストールされたことを通知します。しかし、Visual Studioを起動すると、このアドインをインストールする必要があるという痕跡がありません。拡張機能マネージャーにインストールされている拡張機能の中に表示されず、プロジェクトにMolesアイテムを追加できません。

ここで欠落しているインストール手順はありますか?

0 投票する
1 に答える
428 参照

visual-studio-2010 - 間違ったプロジェクトにアセンブリを追加するほくろ

拡張メソッドをモックできるようにするために、 Microsoft Molesを使い始めようとしていますが、不十分です。

ワークステーションに Moles を正常にインストールしましたが、テスト プロジェクト (MSTest プロジェクトではなく、NUnit を参照するクラス ライブラリ プロジェクト) に移動し、[参照] を下に移動して、スタブしたいアセンブリを右クリックします (この中の NHibernateケース) を選択して [Add mols assembly...] をクリックすると、NHibernate.moles ファイルが私のソリューションのまったく別のプロジェクトに表示されます。内容はそれだけです

これは私をどこにも連れて行かないようです。Dime Casts のこのスクリーンキャストに従って作業を開始できると思っていましたが、スクリーンキャストに表示されている「Moles and Stubs for Testing」アイテム テンプレートがありません。

ここから先には行けないようです。これらのテンプレートを取得するにはどうすればよいですか? そして、ほくろの「アセンブリ」が間違ったプロジェクトで終わるのはなぜですか? Moles の使用を開始するには、ここからどのように進めればよいですか?