Mar*_*kus 74 c# sharepoint unit-testing sharepoint-2013
创建以下特定实例的最方便方法是什么Microsoft.SharePoint.SPTimeZone:
SPTimeZone utc = SPRegionalSettings.GlobalTimeZones
.OfType<SPTimeZone>()
.FirstOrDefault(tz => tz.Information.Bias == 0
&& tz.Information.DaylightBias == 0);
Run Code Online (Sandbox Code Playgroud)
这个黑客是我能得到的最好的......
这对我来说尤其是一个问题,因为我想模拟这部分代码进行单元测试并强制它始终返回UTC.该属性GlobalTimeZones似乎依赖于HttpContext.Current或实际请求 - 我在单元测试中没有的先决条件......
注意:我知道只有System.TimeZoneInfo第三方组装强迫我使用SPTimeZone ......
为了停止讨论,我决定最终自己回答这个问题.
评论中有几个非常有用的解决方案,我想在这个简短的答案中收集:
我本人决定使用MSFakes来填充整个第三方调用(因为我无论如何都不想测试它的行为)并且修复我在我的方法中使用的SPTimeZone的所有属性.不幸的是,介绍适配器对我来说不是一个选项,因为我必须保留(内部)API.