2

私は、Telerik のモック フレームワークである JustMock を調べています。それはかなり良いようです。私たちにとって非常に興味深い機能の 1 つは、Future Mocking と呼ばれるものです。基本的に、テストしたいメソッド内で作成されたインスタンスをモックできます (私が知っている悪いコード)。

例えば ​​:

public void foo()
{
    var service = new MyService();
    service.DoSomething();
}

したがって、この機能により、その foo() メソッド内で使用される MyService インスタンスをモックできます。

TypeMock にも同様の機能があると思います。

これを可能にする他のフレームワークがあるかどうか疑問に思っていましたか? モク?Nモック?フェイクイットイージー?彼らはこの機能を持っていますか?他のフレームワーク???

4

1 に答える 1

6

あなたが言及したような従来のフレームワーク (Moq、NMock、FakeItEasy) は、疎結合された製品コードに基づいて機能します。メソッド内で依存関係を作成すると (パラメーターまたはクラス コンストラクターを介して渡すのではなく)、偽物 (スタブまたはモック) を注入するための継ぎ目ができなくなります。

JustMock と TypeMock は、プロファイラー API (IIRC) を使用してこれを回避し、コードをインターセプトして迂回します。これを行う別のフレームワークはMiscosoft Molesで、まもなく Visual Studio 11 で Fakes と名付けられます。

注:ただし、後者のフレームワークは、依存性注入を使用できない密結合のレガシー コードに適していることに注意してください。これらのフレームワークを使用したテストは、フレームワークのプロファイラーのような性質によるオーバーヘッドのため、遅くなる可能性があります。依存性注入を使用でき、単体テストをできるだけ高速にしたい場合は、従来のフレームワークの方が適しています。

于 2012-05-04T18:20:54.367 に答える