【问题标题】:DotNetNuke Unit Testing Facilities and TutorialsDotNetNuke 单元测试工具和教程
【发布时间】:2012-05-01 19:32:49
【问题描述】:

在 dotnetnuke 应用程序中执行单元测试的标准、最佳实践方法是什么?我搜索了 SO 以及 dnn 网站,但找不到太多关于此的信息。我假设 dnn 已经为进行单元测试准备了一些东西,或者至少是一个可以插入的库。我在哪里可以找到更多信息?关于该主题的教程将是理想的,但任何资源都将受到赞赏。

谢谢!

【问题讨论】:

    标签: dotnetnuke


    【解决方案1】:

    没有太多关于在 DotNetNuke 中进行测试的信息。作为一个基于 WebForms 的项目,它并没有引起社区中许多开发人员的强烈关注。

    例如,您可以查看 DNN 源代码中的单元测试项目,这些项目使用了许多不同的方法。他们使用 MbUnit 和 Moq 进行单元测试,并使用 Watin 测试 Web 前端。

    制作可测试模块的主要技术是使用 WebForms MVP 集成,以便您拥有可测试的、松散耦合的 Presenter,您可以轻松地将依赖项注入其中。有一个sample module on codeplex 的开头,但它从未完全充实。不过,它的项目页面确实有一些不错的背景。

    【讨论】:

    • bdukes,感谢您的回复。因为我来自 ruby​​ 和 php 背景,所以我对你的答案有新的 .NET 问题。当您说 WebForms MVP 集成是制作可测试模块的主要技术时,您的意思是您使用 MVP 编写单元测试,然后将您现在测试的 MVP 组件插入 DNN?还是你的意思完全不同?
    • WebForms MVP 是一个用于开发模块的框架。该框架实现了使用标准 WebForms 开发方法难以实现的分离。你可以使用任何你想要的测试框架(NUnitxUnit.netMbUnitSpecFlow),以及任何模拟/隔离框架(MoqFakeItEasyRhinoMocksTypeMock )
    【解决方案2】:

    对于数据驱动的单元测试方法,请注意以下几点:

    • 为单元测试项目创建 app.config 文件,并从 DNN Web 应用的 web.config 中复制与“数据”、“缓存”相关的部分

    • 在运行任何测试之前安装缓存提供程序: ComponentFactory.InstallComponents(New ProviderInstaller("caching", GetType(CachingProvider)))

    【讨论】:

      【解决方案3】:

      当单元测试数据驱动模块时:

      • 如果需要,请务必添加核心 DNN 文件 + DotNetNuke.Instrumentation.dll + PetaPoco
      • 在 app.config 中包含数据和缓存部分(从 DNN web.config 复制部分)
      • 在调用 DataProvider 方法之前在您的代码中初始化数据和缓存提供程序:

        ComponentFactory.InstallComponents(new ProviderInstaller("data", typeof(DataProvider)), new ProviderInstaller("caching", typeof(CachingProvider)));

      【讨论】:

      • 添加一个 ComponentFactory.Container = new SimpleContainer();在 InstallComponents 之前,一切正常
      猜你喜欢
      • 2010-12-04
      • 1970-01-01
      • 2013-12-29
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多