2016-05-10 10 views
0

私はRhino Mockを初めて使っています。私は内部的にプライベートフィールドとして他のオブジェクトを作成するクラスMyClassのユニットテストを書いています。 Iユニットは、これらを作成... ... MyClassは彼らとどのように相互作用するか、私はCTOR引数としてOtherClassを渡さないと、私は本当にしたくないメソッド呼び出しの中で構築されたオブジェクトを模擬してください

class MyClass 
{ 
public void Method1() 
{ 
    var o = new OtherClass(); 
    o.Method2(); 
    o.Method3(); 
} 
} 

注意を個別にそれらのクラスをテストしたがいませんでしたオブジェクトはクラスが行うことですが、私は実際にそれらを注入する外部エージェントを必要としません。

このシナリオでは、Rhino Mockを使用して何らかの形でこのユニットのテストからOtherClassの模擬ができるので、インスタンスが作成され、正しく相互作用されていると判断できますか?

答えて

1

いいえ、Rhinomocksモックはこの機能をサポートしていません。 Rhinomocks/Moq/FakeItEasy/NS substituteはすべてプロキシベースのツールであり、そのうちのどれもリファクタリングなしでコードを分離できないことを意味します。

あなたは、このようなTypemock IsolatorMsfakesおよびなどなど、コード織りツールを使用する必要がリファクタリングずに隔離することができるようにする...

どういうわけか、それは同じプロジェクトに2つのモックフレームワークを組み合わせるために、コミュニティにそれほど普及していませんしかし、私が.netの世界にいたとき、私は通常、RhinomocksとMsfakesを組み合わせました。デフォルトのモックフレームワークとして

  • Rhinomocks
  • ことが必要であるのみMsfakes(Rhinomocksが優れている正規場合について....)。静電気防止シールなど。
0

免責事項私はTypeMockで働いています。

Typemockアイソレータを使用したとき、それは実際には1行で行うことができ、偽の将来のインスタンスには非常に簡単です:

var classUnderTest = new MyClass(); 
    // Faking future OtherClass 
    var fakeOther = Isolate.Fake.NextInstance<OtherClass>(); 

そして、あなたはそれhereについての詳細を読むことができます。

関連する問題