單元測試aspnet mvc 3中的HttpApplication有意義嗎?在aspnet mvc 3中單元測試HttpApplication有意義嗎?
0
A
回答
1
如果你的意思是「對我單元測試HttpApplication類本身是否合理」 - 不。除非你是ASP.NET團隊的開發人員,否則不會。一般來說,你應該單元測試你正在編寫的代碼,而不是其他人的代碼。但是,如果你的意思是「對我的單元測試依賴於HttpApplication的類是否有意義」,那麼很可能是的。它可能是你有類爲了聲明你自己的類行爲正確,它嘲笑(或否則僞造)HttpApplication類是很有意義的。
0
是的,如果你打算在單元測試中使用它,你需要嘲笑它。
我會做這樣的:
1:添加一個公共靜態屬性/方法MvcApplication(在global.cs)
public static string MyProperty { get; set; }
2:創建一個接口
public Interface IApplication
{
string MyProperty {get;set;}
}
3:爲你創建一個包裝類MvcApplication並實現接口
public class MvcApplicationWrapper: IApplication
{
public string MyProperty
{
get{
return MvcApplication.MyPropetry;
}
set{
MvcApplication.MyPropetry = value;
}
}
}
4:控制器延遲加載上創建一個公共財產IApplication
private IApplication app;
public IApplication Application{
get{
if(app == null){
app = new MvcApplicationWrapper();
}
return app;
}
set
{
app = value;
}
}
5:當你的單元測試,創建一個嘲笑IApplication並設置控制器的應用特性
var controller = new Controller();
controler.Application = new MockApplication();
/* do you tests */
相關問題
- 1. 單元測試HttpApplication
- 2. 單元測試:測試父對象方法有意義嗎?
- 3. ASP.NET MVC 3測試版:TryUpdateModel在單元測試中拋出NullreferenceException
- 4. MVC中的單元測試
- 5. 測試界面有意義嗎?
- 6. 它是否有意義單元測試不存在Id
- 7. TryUpdateModel在ASP.NET MVC 3單元測試中拋出NullReferenceException
- 8. 此測試對測試併發問題有意義嗎?
- 9. 春3單元測試
- 10. MVC單元測試用例
- 11. asp.net mvc nhibernate單元測試
- 12. ASP.NET MVC單元測試
- 13. MVC-單元測試 - ViewEngines
- 14. 單元測試ASP.NET MVC
- 15. ASP.net MVC - FluentValidation單元測試
- 16. 單元測試mvc登錄
- 17. 單元測試REDX-SAGA的觀察者有什麼意義?
- 18. 單元測試控制器是否有意義
- 19. 如何爲假貨創建有意義的單元測試
- 20. 在模型規範中測試委託方法有意義嗎?
- 21. 這個負面單元測試是否有意義
- 22. 在asp.net mvc的登錄單元測試3
- 23. Starbasic有單元測試框架嗎?
- 24. 如何測試IHttpModules中的HttpApplication事件
- 25. 如何在Braintree Java API中編寫有意義的單元測試?
- 26. Rails 3中的單元測試錯誤
- 27. 將backbone.js與ASPNET MVC集成是否有意義?
- 28. Debuggin單元測試在ASP.Net MVC
- 29. ASP MVC 2單元測試調試
- 30. 是否有意義測試控制器
你會定義IMyFunkyHttpApplication接口,然後在MyFunkyMvcApplication中實現接口:IMyFunkyHttpApplication?這不是我的想法。我正在查看某人的代碼,並想知道重點是什麼。 – user669226 2011-04-08 10:46:19
如果我正確理解你的問題:有一個接口和一個實現接口的具體實現是很常見的。這樣做的主要原因是將代碼的使用者與實際實現分離開來。換句話說 - 你的代碼使用SomeDependency的地方,它實際上通過ISomeDependency調用它。當你來測試時,你現在可以嘲笑這種依賴。這可以讓你測試你的消費者代碼,而不需要在依賴項中測試別人的代碼。它還使您可以斷言您的客戶正確地調用了依賴關係。 – 2011-04-08 11:08:40
我同意HttpApplication本身不應該被測試。但是,我肯定會測試存儲在HttpApplication的子項中的任何應用程序特定的邏輯(通常在Global.asax.cs中)。在MVC項目中,該類保存配置代碼,在webforms中包含應用程序級事件處理程序。嘲笑在這種情況下幫助很大,或手動創建假貨 – Roman 2011-10-13 21:16:42