【发布时间】:2012-05-01 19:32:49
【问题描述】:
在 dotnetnuke 应用程序中执行单元测试的标准、最佳实践方法是什么?我搜索了 SO 以及 dnn 网站,但找不到太多关于此的信息。我假设 dnn 已经为进行单元测试准备了一些东西,或者至少是一个可以插入的库。我在哪里可以找到更多信息?关于该主题的教程将是理想的,但任何资源都将受到赞赏。
谢谢!
【问题讨论】:
标签: dotnetnuke
在 dotnetnuke 应用程序中执行单元测试的标准、最佳实践方法是什么?我搜索了 SO 以及 dnn 网站,但找不到太多关于此的信息。我假设 dnn 已经为进行单元测试准备了一些东西,或者至少是一个可以插入的库。我在哪里可以找到更多信息?关于该主题的教程将是理想的,但任何资源都将受到赞赏。
谢谢!
【问题讨论】:
标签: dotnetnuke
没有太多关于在 DotNetNuke 中进行测试的信息。作为一个基于 WebForms 的项目,它并没有引起社区中许多开发人员的强烈关注。
例如,您可以查看 DNN 源代码中的单元测试项目,这些项目使用了许多不同的方法。他们使用 MbUnit 和 Moq 进行单元测试,并使用 Watin 测试 Web 前端。
制作可测试模块的主要技术是使用 WebForms MVP 集成,以便您拥有可测试的、松散耦合的 Presenter,您可以轻松地将依赖项注入其中。有一个sample module on codeplex 的开头,但它从未完全充实。不过,它的项目页面确实有一些不错的背景。
【讨论】:
对于数据驱动的单元测试方法,请注意以下几点:
为单元测试项目创建 app.config 文件,并从 DNN Web 应用的 web.config 中复制与“数据”、“缓存”相关的部分
在运行任何测试之前安装缓存提供程序:
ComponentFactory.InstallComponents(New ProviderInstaller("caching", GetType(CachingProvider)))
【讨论】:
当单元测试数据驱动模块时:
在调用 DataProvider 方法之前在您的代码中初始化数据和缓存提供程序:
ComponentFactory.InstallComponents(new ProviderInstaller("data", typeof(DataProvider)), new ProviderInstaller("caching", typeof(CachingProvider)));
【讨论】: