NMock

2009-07-22 4 views
-1

にメソッドGetType()メソッドを模擬するためにどのように私はNMock

private bool IsTypeEqual(object theFirstObject, object theSecondObject) 
{ 
     if(theFirstObject.GetType()==theSecondObject.GetType()) 
     { 
       return true; 
     } 
     else 
     { 
       return false; 
     } 
} 

のようないくつかの製品コードは、今私は、このコードのためのユニットテストケースを記述する必要があります。私はNMockを使用して オブジェクトを作成しています。だから私は2つの異なるクラスのオブジェクトを渡しているとき、それは他の部分に移動する必要があります。 しかし、私は両方のオブジェクトを嘲笑しているので、GetType()はオブジェクトの両方のMockObject型を返します。どうすればこの問題を解決できますか?

+2

return(theFirstObject.GetType()== theSecondObject.GetType()) –

+0

"オブジェクト"をモックすることはできません。これはインターフェースや抽象クラスではありません。 – Liam

答えて

-1

このコードがお役に立てば幸いです。

private bool IsTypeEqual<TMockedType>(object theFirstObject, object theSecondObject) 
{ 
    Matcher matcher = Is.TypeOf(typeof(TMockedType)); 

    return matcher.Matches(theFirstObject) && matcher.Matches(theSecondObject); 
}
0

あなたは "theFirstObject" または "theSecondObject" をモックする必要がいけません。あなたは本当にこれらのクラスに何が起こるか気にしません、あなたは結果が正しいと主張する必要があります。私があなただったら

私は別のタイプに渡すと、それは偽/真であるかどうかを主張するでしょう:あなただけ をしなかった理由は、問題とは何の関係もありません

Assert.AreEqual(false, IsTypeEqual("HelloWorld", 192)); 

Assert.AreEqual(true, IsTypeEqual("Hello", "World"));