单元测试ASP.net Page_Load

Whi*_*cat 6 vb.net asp.net unit-testing

如何在ASP.net中为Page_Load函数创建单元测试?

我正在使用Visual Studio Unit测试框架构建工作.我想创建一个单元测试来检查网页的元素及其值.

我知道硒及其在单元测试中的能力.

这是测试WebPageControl.ascx.vb的网页:

   Public Class WebPageControl
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            TextBox.Visible = False
        End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

这是单元测试WebPageControlTest.vb:

Public Class WebPageControlTest
    Public Sub PageLoadTest()

        Dim target As WebPageControl_Accessor = New WebPageControl_Accessor() 
        Assert.IsFAlse(target.TextBox.Visible)
    End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

我这样做后仍然出错

Test method RechargeTest.WebPageControlTest.PageLoadTest threw exception: System.NullReferenceException: Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)

rsb*_*rro 3

您可能无法在 ASP.NET 运行时之外新建页面。

您可能想在 ASP.NET 下搜索 MVP(模型-视图-演示者)模式。恕我直言,它使测试 Web 代码变得更加容易。这篇文章是一个很好的起点:

http://haacked.com/archive/2006/08/09/ASP.NETSupervisingControllerModelViewPresenterFromSchematicToUnitTestsToCode.aspx