繁体   English   中英

ASP.NET应用程序的单元测试配置

[英]Unit Test configuration for ASP.NET application

这是我对Asp.Net Web应用程序的第一次测试。 我们有一个由几个模块组成的引擎。 我需要测试引擎模块中的类。 尽管这些小类是Asp.Net App的一部分,但它们仅包含业务逻辑。

我如何孤立地测试这些类,使其成为WebApp的一部分? 因为我收到这个错误

Web请求“ http:// localhost:8936 / ”成功完成,没有运行测试。 当配置Web应用程序进行测试失败(处理请求时会发生ASP.NET服务器错误),或者没有执行ASP.NET页(URL可能指向HTML页,Web服务或目录列表)。 在ASP.NET中运行测试需要URL解析为ASP.NET页面,并且该页面才能正确执行直到Load事件。 来自请求的响应与测试结果一起存储在文件“ WebRequestResponse_BlogManagerBPOConstr.html”中; 通常,可以使用Web浏览器打开此文件以查看其内容。

谢谢

编辑: @马克,这是设计师生成的TestMethods之一

/

// <summary>
        ///A test for BlogManagerBPO Constructor
        ///</summary>
        // TODO: Ensure that the UrlToTest attribute specifies a URL to an ASP.NET page (for example,
        // http://.../Default.aspx). This is necessary for the unit test to be executed on the web server,
        // whether you are testing a page, web service, or a WCF service.
        [TestMethod()]
        [HostType("ASP.NET")]
        [AspNetDevelopmentServerHost("D:\\WorkingCopies\\MyProject\\Engine", "/")]
        [UrlToTest("http://localhost:8936/")]
        public void BlogManagerBPOConstructorTest()
        {
            BlogManagerBPO target = new BlogManagerBPO();
            Assert.Inconclusive("TODO: Implement code to verify target");
        }

您收到的异常消息听起来根本就不是单元测试。 您是否要运行Visual Studio Web测试套件?

对于单元测试,您应该只能够创建业务逻辑类的实例并对其进行测试,而不会受到ASP.NET运行时的干扰。

在MsTest中,可能看起来像这样:

[TestMethod]
public void Test5()
{
    var sut = new Thing();
    var expectedResult = new object();
    sut.Bar = expectedResult;
    var actual = sut.Bar;
    Assert.AreEqual(expectedResult, actual);
}

(不过,这可能不是最令人兴奋的测试...)

在任何地方都找不到ASP.NET细节。

如果将业务逻辑放在单独的库中并确保它不引用System.Web等,则可以最好地确保这一点。

将属性UrlToTest设置为Url In测试。 喜欢:

[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("C:\\xx\\xx\\Documents\\Visual Studio 2010\\Projects\\xx\\xx", "/")]
[UrlToTest("http://localhost:xxx/examples.aspx")]
[DeploymentItem("examples.dll")]

或如Mark所说,摆脱困境
[HostType("ASP.NET")] [AspNetDevelopmentServerHost("C:\\xx\\xx\\Documents\\Visual Studio 2010\\Projects\\xx\\xx", "/")] [UrlToTest("http://localhost:xxx/examples.aspx")] [DeploymentItem("examples.dll")]试图在MVC项目中使用它,直到我摆脱了它,它才通过

只需检查您是否已将app.config添加到测试项目中,并从web.config(来自WebService项目)中进行了必要的设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM