我有一个使用PortalSiteMapProvider来查询Sharepoint导航层次结构的Web部件,但是为该代码编写的单元测试失败,因为代码在Sharepoint上下文之外运行,因此没有可用的站点地图提供程序。
我已经确定了两种解决这种困境的替代方法:
这些中的任何一个是可行的还是有更好的第三种选择?
答案 0 :(得分:2)
Microsoft模式和实践人员建议使用TypeMock来帮助单元测试Sharepoint
http://msdn.microsoft.com/en-us/library/dd203468.aspx
http://www.typemock.com/sharepointpage.php
不幸的是,这不是一个免费的解决方案。
答案 1 :(得分:0)
您将无法模拟SPRequest类,它是一个内部类。我面临同样的问题。 一种方法是尝试将您的代码与SharePoint API隔离开来,这不太好。
答案 2 :(得分:0)
BTW Typemock的产品价格较低,尤其是SharePoint。
答案 3 :(得分:-1)
第二种选择更合适。摘要PSMP并将其隐藏在IPortalSiteMapProvider
后面,然后在单元测试中模拟它。为了桥接接口和具体实现,您可以编写精简委托适配器或使用duck typing。