2

ほくろ分離フレームワークの使用方法に関する一貫した説明を見つけようとしていましたが、このトピックについてはあまり見つかりませんでした。これまでのところ、次のことを行いました。

  1. ここからモルをダウンロードします(x86版)。
  2. インストールします。
  3. ここの男は、カスタムライブラリでそれを使用する方法を説明しています. だから私は自分のライブラリにほくろアセンブリを追加しました。再構築後、アセンブリが参照に表示されました。
  4. 次に、.Moles 名前空間の使用を追加してプロジェクトをビルドしようとしましたが、一連のエラーで失敗しました。MDateTime を使用した例も機能しませんでした。MDateTime にはメソッドがありませんでした。
  5. それが 5 回目の試みで失敗したことを考慮して、システムからアンインストールしました。

質問: ほくろは誰にでも効果がありますか? はいの場合、どうやってそこに着きましたか?それを機能させるには、pexもインストールする必要がありますか?msbuild スクリプトからビルド サーバーで使用したい場合はどうすればよいですか? 彼らがmsbuildのサポートについて言及しているのを見ましたが、msbuildから実際に使用した経験のある人はいますか?

私にとっては、本格的な開発プロセスで使用するのは非常に生のように見えます。多分誰かが別の意見を持っていますか?

ありがとう。

4

2 に答える 2

3

はい、うまくいきます。v0.94.51023.0 をインストールしていると仮定します。Moles が適切に機能するためには、テスト クラスをセットアップするために、いくつかのことを行う必要があります。これらはすぐに第二の性質になります - 心配しないでください!

  1. Moles を使用するアセンブリごとに、「成形アセンブリ」を作成する必要があります。

    a. ソリューション エクスプローラーの [参照] ノードでアセンブリを右クリックし、[Moles アセンブリの追加] を選択します。b. .NET Framework アセンブリをモール化する場合は、[参照] ノードを右クリックし、[mscorlib のモール アセンブリを追加] を選択します。

  2. .CS ファイルで Microsoft.Moles.Framework アセンブリを参照します。

    Microsoft.Moles.Framework を使用します。

  3. プロジェクトをビルドします。これにより、適切な Moles フレームワーク参照がプロジェクトに追加されます。@Lara がコメントしたように、ステップ 3 は参照を追加せずに失敗します。

  4. .CS ファイルで成形アセンブリを参照します。

    MyNamespace.Moles を使用します。

  5. [HostType("Moles"] 属性で Moled 型を使用するテスト メソッドを装飾する

    [HostType("モル")]

  6. アセンブリ属性を使用して、.CS ファイルで使用されているアセンブリ全体または個々の型を識別します。

    MyNameSpace.MyAssemblyName.Moles を使用します。

    [アセンブリ: MoledAssemblyType("MyNameSpace.MyAssemblyName")]

    [アセンブリ: MoledType(typeof(MyNameSpace.MyAssemblyName.MyClass))]

テスト プロジェクトがコンパイルされると、Moles は「成形された」アセンブリをコピーし、そのコピーに回り道を挿入します。成形されたアセンブリと型の名前空間には、「.Moles」が追加されます。したがって、「MyNameSpace.MyAssembly」は「MyNameSpace.MyAssembly.Moles」になります。モールド アセンブリのタイプ名の接頭辞「S」と「M」についてもご存知でしょう。そうでない場合は、 Moles Reference Manualを参照してください。

于 2011-07-22T04:10:39.417 に答える
0

私にとっては非常にうまく機能し、MDateTime でも試してみました。using に正しい名前空間を配置するか、System.Moles.MDateTime をコードで直接使用するようにしてください。Intellisense は、必要に応じて設定するためのすべてのメソッドとプロパティを提供する必要があります。

moles アセンブリを追加した後にプロジェクトを再構築したと既に述べたように、これはもはや問題ではありません。

いくつかのクラス (今のところよくわかりません。おそらく mscorlib の一部ではないクラスでしょうか?)

[assembly: MoledType( typeof( HttpContext ) )]

単体テスト クラスの先頭 (名前空間の上) に、さらに

[HostType( "Moles" )]

私のテストメソッドへの属性としてですが、これは MDateTime には必要ありません。

最新バージョンをダウンロードし、VS2010 を最新の SP に更新しましたか?

これのいくつかが役立つことを願っています...

G.

于 2011-07-20T14:39:23.143 に答える