单元测试SiteMapNode

时间:2008-11-19 10:42:40

标签: unit-testing tdd mocking sitemap

有谁知道如何对SiteMapNode进行单元测试?我们正在构建一些自定义导航控件,这些控件使用自定义属性从站点地图呈现无序的html列表。

我正在尝试遵循测试第一种方法,但我发现SiteMapNode对HttpContext有内部依赖性。要遍历站点地图文件,它坚持使用虚拟路径来查找站点地图文件。

我已经构建了一个站点地图,我想测试它,但我不想在web项目中创建我的单元测试环境(!)

有什么建议吗?惩戒?覆盖相关成员?

2 个答案:

答案 0 :(得分:2)

一个相当沉闷的问题,所以毫不奇怪它没有得到回应!对于任何可能偶然遇到此问题的人来说,这是我的首选解决方案:

我发现处理此问题的最佳方法是将物理站点地图加载到xml文档中。然后我有一个NavigationNodeFactory,它从xml文档验证并构建我自己的复合NavigationNode树。

我的NavigationNode类就像我喜欢的那样自负,并且绕过了我在SiteMap和SiteMapProvider中发现的问题,即实现者的可测试性差。

答案 1 :(得分:0)

我认为问题可能源于您的描述,您试图先测试已存在的类 - SiteMapNode。

您需要在应用程序中测试站点地图节点的使用,因此我建议您如果要对sitemapnode类执行操作,请使用中间的ISiteMapProvider或类似方法对其进行包装您自己制作的摘要,并让您的自定义导航控件与此互动。

然后,您可以为运行时调用SiteMapNodeProvider,调用SiteMapNode进行操作,然后使用StubbedSiteMapProvider进行单元测试,将测试值传递给自定义控件。