2012-05-01 31 views
5

在dotnetnuke應用程序中執行單元測試的標準,最佳實踐方式是什麼?我搜索了以及dnn網站,但無法找到關於此的更多信息。我假設dnn有單元測試的東西,或者至少可以插入一個庫。在哪裏可以找到更多的信息?關於這個主題的教程將是理想的,但任何資源都將不勝感激。DotNetNuke單元測試設施和教程

謝謝!

回答

4

DotNetNuke中沒有太多關於測試的信息。作爲一個基於WebForms的項目,它並沒有成爲社區中許多開發人員的強烈關注點。

例如,您可以查看DNN源代碼中的單元測試項目,其中使用了多種不同的方法。他們使用MbUnit和Moq進行單元測試,以及Watin測試Web前端。

製作可測試模塊的主要技術是使用WebForms MVP集成,以便您可以測試鬆散耦合的演示者,以便您可以輕鬆地注入依賴關係。有一個sample module on codeplex的開始,但它從來沒有完全充實。但是,它的項目頁面確實有一些很好的背景。

+0

bdukes,謝謝你的回覆。因爲我來自ruby和php背景,所以我有關於你的答案的.NET新問題。當你說WebForms MVP集成是製作可測試模塊的主要技術時,你的意思是你使用MVP編寫單元測試,然後將你現在測試過的MVP組件插入到DNN中?還是你的意思是完全不同? – Jonah

+0

WebForms MVP是一個開發你的模塊的框架。該框架支持使用標準WebForms開發方法難以實現的分離。您可以使用任何您想要的測試框架([NUnit](http://www.nunit.org/),[xUnit.net](http://xunit.codeplex.com/),[MbUnit](http://[url] /mbunit.com/),[SpecFlow](http://www.specflow.org/))以及任何模擬/隔離框架([Moq](https://github.com/Moq/moq)) [FakeItEasy](https://github.com/patrik-hagne/FakeItEasy),[RhinoMocks](http://hibernatingrhinos.com/open-source/rhino-mocks),[TypeMock](http:// www。 type))) – bdukes

2

對於數據驅動的單元測試方法,應注意以下幾點:

  • 創建單元測試項目app.config文件,並從web.config中複製有關的部分,以「數據」,「高速緩存」運行任何測試之前,DNN的Web應用程序的

  • 安裝緩存提供商: ComponentFactory.InstallComponents(New ProviderInstaller("caching", GetType(CachingProvider)))

1

當單元測試數據DRI VEN模塊:

  • 一定要添加核心DNN文件+ DotNetNuke.Instrumentation.dll + PetaPoco如果needeed
  • 包括數據的app.config &緩存部分(複製部分來自DNN的web.config)
  • 初始化數據在你的代碼&緩存提供商DataProvider中調用方法之前:

    ComponentFactory.InstallComponents(新ProviderInstaller( 「數據」 的typeof(DataProvider的)),新ProviderInstaller( 「緩存」 的typeof(CachingProvider)));

+0

添加一個ComponentFactory。Container = new SimpleContainer(); InstallComponents之前,一切正常 – Jerome2606