如何在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.
答案 0 :(得分:2)
您可能无法在ASP.NET运行时之外新建一个页面。
您可能想要在ASP.NET下浏览MVP(模型 - 视图 - 演示者)模式。它使测试Web代码更容易恕我直言。这篇文章是一个很好的起点:
答案 1 :(得分:2)
如果您需要可测试的ASP.NET WebForms代码,请查看此项目。 http://webformsmvp.com/
答案 2 :(得分:1)
Web表单实际上并非构建为通过单元测试运行。 Here's一篇关于我在说什么的好文章。如果你真的希望你的页面可以测试,我会考虑转移到asp.net mvc或mvp。