是否可以使用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>();
}
}
答案 0 :(得分:3)
使用Fakes,您可以存根虚拟属性和方法(类和接口)。您可以填充非虚拟属性和方法(实例和静态)。字段不需要填充或存根,因为它们可以直接设置,如下所示。
Globals.greatStations = new List<string>();