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 回答