2012-03-06 16 views
1

で可能ですか?RhinoMocksコンストラクタを呼び出さずにモックオブジェクトを作成できますか?コンストラクタを呼び出さずにモックを作成

public class A 
    { 
     public A() 
     { 
      throw new InvalidOperationException("Mock me!"); 
     } 
    } 

    [Test] 
    public void TestCtors() 
    { 
     MockRepository mocks = new MockRepository(); 
     A a = (A)mocks.StrictMock(typeof(A)); 
     Assert.IsTrue(true, "Should be eligible"); 
    } 
+0

なぜこれが必要ですか?コンストラクタの目的は、クラスメンバを使用可能な状態に初期化することです。なぜこれをスキップしたいのですか? – PatrickSteele

+0

しかし、私は_mock_クラスにしたいので、メンバを初期化する必要はありません。例えば、EasyMockはctorを起動しません。 –

+1

Rhino.Mocksは@Steve Haighの説明どおりにこれを行うことはできません。あなたはTelerikからJustMockをチェックアウトしたいかもしれません。私はそれがモックを作成するときにデフォルト/ベースのctorsをスキップできると思う。 – PatrickSteele

答えて

1

具体的なクラスを嘲笑しているなら、これを回避する方法はないと思います。代わりにインターフェイスで模擬することができれば、明らかにコンストラクタを呼び出さないでしょう。 Aが実装してインターフェイスを模擬できるようにコードを再作成することは可能でしょうか?

+0

いいえ、私はソースコードを変更することはできません。私はなぜコンストラクターが実行しているのだろうか?例えば。 EasyMockではそうではありません! –

+0

私はEasyMockに精通していませんが、それがあなたのために働くのであれば、その代わりに使うことができますか? Rhino Mockはあなたのクラスから派生したインスタンスを作成するので、ここでは発砲しています - http://ayende.com/Wiki/Rhino+Mocks+Mocking+classes.ashxの最後の注を参照してください。 –

+0

EasyMockはJava用です。決して少なくありがとうございました。 –

関連する問題