单元测试ASP.net Page_Load

时间:2011-04-11 17:07:29

标签: asp.net vb.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

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

执行此操作后,我仍然收到错误

Test method RechargeTest.WebPageControlTest.PageLoadTest threw exception: System.NullReferenceException: Object reference not set to an instance of an object.

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

如果您需要可测试的ASP.NET WebForms代码,请查看此项目。 http://webformsmvp.com/

答案 2 :(得分:1)

Web表单实际上并非构建为通过单元测试运行。 Here's一篇关于我在说什么的好文章。如果你真的希望你的页面可以测试,我会考虑转移到asp.net mvc或mvp。