2012-01-04 3 views
5

私は単体テストを書くためのツール群に分離フレームワークを追加したいと思っています。Monoをテストするための分離フレーム

私たちのアプリケーションはLinuxとWindowsの両方に配備されているのでMonoで動作し、Monoをサポートするフレームワークを見つけることができません。

私はCecilを使用してアセンブリを操作する方法についていくつかの記事を見てきましたが、現実的に使用できるものを見つけるのには苦労しています。

答えて

4

MolesはJITを使用しているように見えますので、Microsoftの実装に非常に結びついていると思います。

Moqをモノで使用すると非常に成功しました。ほとんどすべてのクラスのプロキシインスタンスを作成し、ほぼすべてのメソッド呼び出しを代行することができます。 Moqのlatest binary versionは、私にとってモノ上で非常にうまく動作します。

using Moq; 

var mock = new Mock<MyClass> { CallBase = true }; 
mock.Setup(x => x.MyMethod()).Returns (1); 

私は一般的にNUnitを使用することを好みますが、他のテストフレームワークを使用することができます。

+0

入力いただきありがとうございます。はい、私はそれが失敗すると仮定してMonoでMolesを実行することを見ようとしました。 私はすでにMoqを使用していますが、これは素晴らしいと思いますが、私はDateTime.Nowタイプの問題に対処できるツールを探しています。私は完全にプロキシクラスのインスタンスメソッドの背後に静的メソッドをラップすることができますが、私はそれがすべてのシナリオで最もエレガントなソリューションであるかどうかはわかりません。 – sebjsmith

+0

ああ、静的メソッドのインターセプト..それはトリッキーです – IanNorton

+0

PostSharpを使ってメソッドにプリ/ポストフックを追加しましたか? – IanNorton

0

TypeMockは@IanNortonからの回答にあなたのコメントを追加するときに唯一の選択肢です。

+1

TypeMockがMonoをサポートしているとは思いません。 – sebjsmith

+0

TypeMockがMonoで動作しない場合は、プロキシクラス以外の選択肢は絶対にありません。 –

関連する問題