当前位置: 首页 > 编程语言 > C#

ASP.NET应用单元测试配置分享

时间:2023-04-10 20:49:42 C#

ASP.NET应用单元测试配置这是我第一次测试Asp.NetWeb应用。我们有一个由几个模块组成的引擎。我需要测试引擎模块中的类。虽然这些术语是Asp.NetApp的一部分,但它们仅包含业务逻辑。如何在将它们作为WebApp的一部分的同时单独测试这些类?因为我收到此错误Web请求“http://localhost:8936/”已成功完成而无需运行测试。配置用于测试的Web应用程序失败时(处理请求时发生ASP.NET服务器错误),或未执行ASP.NET页面时(URL可能指向HTML页面、Web服务或目录列表)。在ASP.NET中运行测试要求URL解析为ASP.NET页面,并且该页面正确执行到Load事件。请求的响应与测试结果一起存储在文件“WebRequestResponse_BlogManagerBPOConstr.html”中;通常可以使用Web浏览器打开此文件以查看其内容。谢谢编辑:@Mark,这是设计者生成的TestMethods之一/////BlogManagerBPO构造函数的测试/////TODO:确保UrlToTest属性指定ASP.NET页面的URL(例如,//http://.../Default.aspx).这是在Web服务器上执行单元测试所必需的,//无论您是测试页面、Web服务还是WCF服务。[TestMethod()][HostType("ASP.NET")][AspNetDevelopmentServerHost("D:\WorkingCopies\MyProject\Engine","/")][UrlToTest("http://localhost:8936/")]publicvoidBlogManagerBPOConstructorTest(){BlogManagerBPOtarget=newBlogManagerBPO();Assert.Inconclusive("TODO:实现代码来验证目标");您收到的异常消息听起来不像是单元测试。您是否尝试过运行VisualStudioWeb测试套件?对于单元测试,您应该只创建业务逻辑类的实例并在不受ASP.NET运行时干扰的情况下测试它们。在MsTest中,它可能看起来像这样:[TestMethod]publicvoidTest5(){varsut=newThing();varexpectedResult=newobject();sut.Bar=expectedResult;varactual=sut.Bar;Assert.AreEqual(expectedResult,actual);}(也许不是最令人兴奋的测试,但是...)无法在任何地方找到ASP.NET详细信息。如果将业务逻辑放在单独的库中并确保它不引用System.Web等,则可以最好地确保这一点。将属性UrlToTest设置为UrlInTest。比如:[TestMethod()][HostType("ASP.NET")][AspNetDevelopmentServerHost("C:\xx\xx\Documents\VisualStudio2010\Projects\xx\xx","/")][UrlToTest("http://localhost:xxx/examples.aspx")][DeploymentItem("examples.dll")]或如Mark所说,删除[HostType("ASP.NET")][AspNetDevelopmentServerHost("C:xxxxDocumentsVisualStudio2010Projectsxxxx","/")][UrlToTest("http://localhost:xxx/examples.aspx")][DeploymentItem("examples.dll")]试图在MVC项目中使用它但它没有通过,直到我摆脱它只是检查app.config是否已添加到测试项目并且它具有来自web.config(来自WebService项目)的必要设置。以上就是《C#学习教程:ASP.NET应用共享之单元测试配置》的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: