2011-07-09 6 views
2

モル分離フレームワークの使い方についての一貫した説明を見つけようとしていましたが、このトピックをあまり見つけていませんでした。 here(x86バージョン)から誰もげっ歯類を適切に働かせましたか?

  1. ダウンロードモル: は、これまでのところ、私は次のようでした。
  2. インストールしてください。
  3. Here guyはカスタムライブラリでどのように使用するかを記述しています。だから自分のライブラリのためのモールスアセンブリを追加しました。再構築後、アセンブリは参照に現れました。
  4. 次に、.Moles名前空間を使って追加しようとしましたが、プロジェクトをビルドしましたが、エラーの束で失敗しました。 MDateTimeの例もうまくいきませんでした。 MDateTimeにはメソッドがありませんでした。
  5. それが5番目に失敗したことを考えると、私はそれをシステムからアンインストールしました。

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

私にとっては、深刻な開発プロセスで使用するために非常に生のように見えます。 誰か他の意見があるかもしれませんか?

ありがとうございました。

+0

は私にとってはうまく動作し、VS.NETテストフレームワークで使用します – Peter

答えて

3

はい、それが正常に動作します。私はあなたがv0.94.51023.0をインストールしていると仮定します。 Molesが正しく機能するためには、テストクラスを設定するためにいくつかのことを行う必要があります。これらはすぐに第二の性質になる - 心配しないで!

  1. はあなたがほくろを使用したい、それに対して各アセンブリのために、「moledアセンブリ」を作成する必要があります。

    。ソリューションエクスプローラの[参照]ノードでアセンブリを右クリックし、[Molesアセンブリの追加]を選択します。 b。 .NET Frameworkアセンブリを作成する場合は、Referencesノードを右クリックして、「mscorlibのMoles Assemblyを追加する」を選択します。 .CSファイル内

  2. リファレンスMicrosoft.Moles.Frameworkアセンブリ:Microsoft.Moles.Frameworkを使用して

  3. プロジェクトをビルドします。これにより、適切なMolesフレームワーク参照がプロジェクトに追加されます。 @Laraがコメントしたように、手順3は参照を追加せずに失敗します。 .CSファイル内のアセンブリをmoled

  4. 参考:MyNamespace.Molesを使用して

    。 [HOSTTYPE( "モル数"]とMoledタイプを使用

  5. 飾り試験方法は

    属性[HOSTTYPE( "モル数")]

  6. 使用されるアセンブリ全体または個々のタイプのいずれかを特定します.CSファイルに、アセンブリを使用して属性:MyNameSpace.MyAssemblyName.Molesを用い

    ;

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

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

テストプロジェクトがコンパイルされる、モルコピー "moled" アセンブリ、およびコピーに迂回路を注入します。成熟したアセンブリと型の名前空間には ".Moles"が追加されます。したがって、 "MyNameSpace.MyAssembly"は "MyNameSpace.MyAssembly.Moles"になります。私はあなたがモルドされたアセンブリの型名の接頭辞 "S"と "M"にも精通していると確信しています。そうでない場合は、Moles Reference Manualを参照してください。

+0

私はあなたと同じことを説明しました。しかし、ステップ3では、名前空間MyNamespace.Molesが存在しないと言いました。私は間違ったことをしましたか? –

+0

@Lara:プロジェクトをビルドしたり、必要な参照を手動で追加したりする可能性があります。ビルドを含めるために、手順を更新します。 –

0

それは私のためにかなりうまく動作し、MDateTimeでも試してみました。正しい名前空間を使用していることを確認するか、System.Moles.MDateTimeをコード内で直接使用してください。 Intellisenseは、必要に応じてすべてのメソッドとプロパティを設定する必要があります。

molesアセンブリを追加した後にプロジェクトを再構築したと言いましたが、これはもはや問題ではありません。いくつかのクラスでは

(私は多分、今mscorlibの一部でないものはかなりわからないんだけど?)私はまた、上記の(私のユニットテストクラスのトップに

[assembly: MoledType(typeof(HttpContext))] 

を追加する必要がありました名前空間)、また

[HostType("Moles")] 

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

最新のバージョンをダウンロードし、VS2010を最新のSPにアップデートしましたか?

は、この一部の情報がお役に立てば幸い...

G.

関連する問題