单元测试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