当前位置: 代码迷 >> Web Service >> WCF 单元测试 有关问题
  详细解决方案

WCF 单元测试 有关问题

热度:1008   发布时间:2012-12-14 10:33:08.0
WCF 单元测试 问题!
在做WCF的单元测试时,测试代码如下:

         /// <summary>
        ///MyFunction 的测试
        ///</summary>
        // TODO: 确保 UrlToTest 特性指定一个指向 ASP.NET 页的 URL(例如,
        // http://.../Default.aspx)。这对于在 Web 服务器上执行单元测试是必需的,
        //无论要测试页、Web 服务还是 WCF 服务都是如此。
        [TestMethod()]
        [HostType("ASP.NET")]
        [AspNetDevelopmentServerHost("D:\\SystemSoftware\\客户端框架\\MyLib.Service.MyTest", "/")]
        [UrlToTest("http://localhost:4491/MyTestDataService.svc")]
        public void MyFunctionTest()
        {
            MyTestDataService target = new MyTestDataService(); // TODO: 初始化为适当的值
            string str = "002"; // TODO: 初始化为适当的值
            string[] strArr = null; // TODO: 初始化为适当的值
            DateTime startTime = new DateTime(2010,8,1); // TODO: 初始化为适当的值
            DateTime endTime = new DateTime(2010,12,1); // TODO: 初始化为适当的值
            OperationFeedback feedback = null; // TODO: 初始化为适当的值
 
            DataSet actual;
            actual = target.MyFunction(str, strArr, startTime, endTime, out feedback);

            Assert.IsTrue(feedback.CorrectRunning);
        }


执行测试,总是出现如下错误。


Web 请求“http://localhost:4491/MyTestDataService.svc”在未运行测试的情况下成功完成。这种情况会在为测试配置 Web 应用程序失败(处理请求时发生 ASP.NET 服务器错误)时或未执行任何 ASP.NET 页(URL 可能指向一个 HTML 页、一个 Web 服务或一个目录列表)时发生。在 ASP.NET 中运行测试要求 URL 解析为 ASP.NET 页,并且该页在 Load 事件发生之前一直正确执行。请求的响应连同测试结果一起存储在文件“WebRequestResponse_MyFunctionTest.html”中,通常可使用 Web 浏览器打开此文件来查看其内容。


http://localhost:4491/MyTestDataService.svc,已经运行,是可访问的。


------解决方案--------------------
再顶一次。

------解决方案--------------------
http://www.360doc.com/content/11/0223/17/3877783_95473700.shtml
这是原文链接

按属性名来理解,HostType设定的是主机类型,AspNetDevelopmentServerHost指定的是项目的路径,而 UrlToTest指定的是发送请求到WebService的Url,导致上述错误出现的问题也在此。因为HostType属性指定了主机的类型是 ASP.NET,则UrlToTest属性必须可以被解析为ASP.NET页。在运行测试的时候,正是该页面向WebService发送请求。</p>
<p>&#12288;&#12288;在Visual Studio自动创建的代码中,UrlToTest的值通常是Web项目的Url,该Url默认是会指向项目中的Default.aspx页面,具体情况视ASP.NET服务器的配置而定。所以,如果你所建的项目中没有Default.aspx的话,直接运行测试的时候则会出现上述错误。所以我们必须把 UrlToTest的值改成一个可被解析为ASP.NET的页。</p>
<p>&nbsp;</p>
<p>
  相关解决方案