2

Microsoft Fakes フレームワークを使用して静的クラスの静的プロパティをシムすることは可能ですか?

そうでない場合、なぜスタブは機能するのにシムは機能しないのでしょうか?

ここに私のクラスコードがあります:

public static class Globals
{
    public static List<string> greatStations = new List<string>();
}

ここに私のテストコードがあります:

[TestMethod]
public void TestMethod1()
{
    using (ShimsContext.Create())
    {
        var shim = new Fakes.ShimGlobals { };
        Fakes.StubGlobals.greatStations = new List<string>();
        // Next line complains that ShimGlobals does not contain a definition for 'greatStations'
        Fakes.ShimGlobals.greatStations = new List<string>(); 
    }
}
4

1 に答える 1

4

Fakes を使用すると、(クラスとインターフェイスの) 仮想プロパティとメソッドをスタブ化できます。非仮想プロパティとメソッド (インスタンスと静的) をシムできます。以下に示すように、フィールドは直接設定できるため、シムまたはスタブする必要はありません。

Globals.greatStations = new List<string>();
于 2012-11-16T16:22:34.157 に答える