2011-04-11 25 views
6

ASP.NET Page_Load işlevi için birim sınama nasıl oluşturulur?Birim Testi ASP.net Page_Load

Visual Studio Unit sınama çerçevesi çalışmasında yapıyorum. Web sayfasının Elemanlarını ve değerlerini kontrol eden bir birim testi oluşturmak istiyorum.

Birim testlerinde selenyum ve yeteneklerini biliyorum.

Bu

WebPageControl.ascx.vb test etmek web Sayfa geçerli:

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 

Bu Birim testi WebPageControlTest.vb geçerli:

Public Class WebPageControlTest 
    Public Sub PageLoadTest() 

     Dim target As WebPageControl_Accessor = New WebPageControl_Accessor() 
     Assert.IsFAlse(target.TextBox.Visible) 
    End Sub 
End Class 

Bunu yaptıktan sonra hala hata alıyorum

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

cevap

2

Muhtemelen ASP.NET çalışma zamanının dışında bir Sayfayı yenileyemeyeceksiniz.

Sen ASP.NET altında MVP (Model-View-Presenter) desen etrafında google isteyebilirsiniz

. Web kodunun test edilmesini çok daha kolay bir IMHO yapar. Bu makale iyi bir başlangıç ​​noktasıdır: gerçekten kurulmadı

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

+0

şimdi on yıldır dışarı olmuştur beri klasik ASP.net üzerinde otomatik testler yöntemler bulunmalıdır. iMacro birdir, ancak durumunuzu yazacak mı bilmiyorum. Belki birisi daha iyi bir şeyle cevap verebilir – kacalapy

+1

Kacalapy OP'nin belirttiği gibi bunun için Selenyum'u kullanabilirsiniz. Yine de tüm web uygulamasını çalıştırmadan test etmek ve entegrasyon testleri yerine gerçek birim testleri yazmak istiyorsanız, MVP modelini kontrol etmenizi tavsiye ederim. Sunucular çoğu işi yapmakla yükümlü olduklarından ve ASP.NET'ten ayrıldıklarından beri, bu Sunucular için test kodu yazmak çok kolaydır. MVC'ye benzer bir model ve deneyimlerinden bahsetmişken oldukça iyi çalıştığını hissediyorum. – rsbarro

+0

Yardımlarınız için teşekkür ederiz. Bir soru var şimdi web formlarını test etmek alışılmadık mı? – Whitecat

1

Web formları birim testi ile çalıştırılmak üzere. Here's, neden bahsettiğim hakkında iyi bir makale. Sayfalarınızın gerçekten test edilebilir olmasını istiyorsanız, asp.net mvc veya mvp'ye geçmeyi düşünün. Eğer test edilebilir ASP.NET WebForms kodu istiyorsanız