0

次のようなクラスがあります。

public class MyClass
{
    int myNum;

    private MyClass() {}

    public static MyClass CreateInstance()
    {
        MyClass a = new MyClass();
        a.myNum=5;
        return a;
    }

    public bool IsBigger(MyClass b)
    {
        return this.myNum > b.myNum;
    }

}

次に、シムを作成して IsBigger メソッドを使用したいのですが、デフォルトでは false を返します。この場合、基本メソッドを呼び出すにはどうすればよいですか?

テストは次のようになります。

[TestMethod]
Public void test()
{
 ShimMyClass firstShim = new ShimMyClass();
 firstShim.myNumGet = () => { return 6; }

 ShimMyClass secondShim = new ShimMyClass();
 secondShim.myNumGet = () => { return 7; }

 Assert.IsTrue(secondShim.Instance.IsBiggerThan(firstShim.Instance);
}
4

1 に答える 1

0

MyNum をプロパティにします。

public class MyClass
{
    public int MyNum { get; private set; }

    private MyClass() {}

    public static MyClass CreateInstance()
    {
        MyClass a = new MyClass();
        a.MyNum=5;
        return a;
    }

    public bool IsBigger(MyClass b)
    {
        return this.MyNum > b.MyNum;
    }

}

ShimMyClass を使用する前に Shim コンテキストを作成します。

using (ShimsContext.Create())
{ 
    ShimMyClass firstShim = new ShimMyClass();
     firstShim.MyNumGet = () => { return 6; }

     ShimMyClass secondShim = new ShimMyClass();
     secondShim.MyNumGet = () => { return 7; }

     Assert.IsTrue(secondShim.IsBiggerThan(firstShim);
}

MSDN のマイクロソフトの偽物

于 2012-10-09T12:35:27.493 に答える