Модульный тест ASP.net Page_Load - PullRequest
6 голосов
/ 11 апреля 2011

Как создать модульный тест для функции Page_Load в ASP.net?

Я использую сборку в тестовом фрейме 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 ]

2 голосов
/ 11 апреля 2011

Если вам нужен тестируемый код ASP.NET WebForms, ознакомьтесь с этим проектом. http://webformsmvp.com/

2 голосов
/ 11 апреля 2011

Возможно, вы не сможете создать новую страницу за пределами среды выполнения ASP.NET.

Возможно, вы захотите поискать шаблон MVP (Model-View-Presenter) в ASP.NET.Это делает тестирование веб-кода намного проще, ИМХО.Эта статья является хорошей отправной точкой:

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

1 голос
/ 11 апреля 2011

Веб-формы действительно не были созданы для запуска через модульное тестирование. Вот хорошая статья о том, о чем я говорю. Если вы действительно хотите, чтобы ваши страницы были тестируемыми, я бы подумал о переходе на asp.net mvc или mvp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...