有谁知道如何对SiteMapNode进行单元测试?我们正在构建一些自定义导航控件,这些控件使用自定义属性从站点地图呈现无序的html列表。
我正在尝试遵循测试第一种方法,但我发现SiteMapNode对HttpContext有内部依赖性。要遍历站点地图文件,它坚持使用虚拟路径来查找站点地图文件。
我已经构建了一个站点地图,我想测试它,但我不想在web项目中创建我的单元测试环境(!)
有什么建议吗?惩戒?覆盖相关成员?
答案 0 :(得分:2)
一个相当沉闷的问题,所以毫不奇怪它没有得到回应!对于任何可能偶然遇到此问题的人来说,这是我的首选解决方案:
我发现处理此问题的最佳方法是将物理站点地图加载到xml文档中。然后我有一个NavigationNodeFactory,它从xml文档验证并构建我自己的复合NavigationNode树。
我的NavigationNode类就像我喜欢的那样自负,并且绕过了我在SiteMap和SiteMapProvider中发现的问题,即实现者的可测试性差。
答案 1 :(得分:0)
我认为问题可能源于您的描述,您试图先测试已存在的类 - SiteMapNode。
您需要在应用程序中测试站点地图节点的使用,因此我建议您如果要对sitemapnode类执行操作,请使用中间的ISiteMapProvider或类似方法对其进行包装您自己制作的摘要,并让您的自定义导航控件与此互动。
然后,您可以为运行时调用SiteMapNodeProvider,调用SiteMapNode进行操作,然后使用StubbedSiteMapProvider进行单元测试,将测试值传递给自定义控件。