2011-09-18 10 views
0

ユニットテストでいくつかの宿題をしていて、正直なところ私はなぜこのエラーが出るのか分かりません。NullReferenceException vb.netユニットテストエラー

タブですべてのテキストを選択し、実際にtextbox1が選択されているかどうかをテストする簡単な方法があります。私はなぜ私がtarget.txtbox1_Enter(送信者、e)でnullReferenceExceptionを取得しているのか分からない

これはとても簡単に思えるので、私は本当に怒っています。

ありがとうございました。

Private Sub txtbox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtbox1.enter 
    Dim txtBox As TextBox 
    txtBox = CType(sender, TextBox) 
    txtBox.SelectAll() 
End Sub 

    <TestMethod(), DeploymentItem("frmtesting.exe")> 
Public Sub txtCustomer_EnterTest() 
    Dim target As frmtesting_Accessor = New frmtesting_Accessor ' TODO: Initialize to an appropriate value 
    Dim sender As Object = Nothing ' TODO: Initialize to an appropriate value 
    Dim e As EventArgs = Nothing ' TODO: Initialize to an appropriate value 

    Dim expected As String 
    Dim actual As String 
    target.txtbox1.Text = "bob" 
    target.txtbox1.SelectAll() 
    expected = "bob" 

    target.txtbox1_Enter(sender, e) 

    actual = target.txtbox1.SelectedText 
    Assert.AreEqual(expected, actual, "not equal") 
End Sub 
+1

「送信者」がヌルです。 'Dim sender as Object = Nothing'を実行して、' txtbox1_Enter'に渡します。 –

+0

[.NETのNullReferenceExceptionは何ですか?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net) –

答えて

0

これは正しい方法です。

'''<summary> 
    '''A test for TextBox1_Enter 
    '''</summary> 
    <TestMethod(), _ 
    DeploymentItem("frmtesting.exe")> _ 
    Public Sub TextBox1_EnterTest() 
     Dim target As frmtesting.exe_Accessor = New frmtesting.exe_Accessor() 
     Dim sender As Object = target.TextBox1 
     Dim e As EventArgs = Nothing 

     target.txtBox1.Text = "bob" 

     target.txtBox1_Enter(sender, e) 

     Assert.AreEqual("bob", target.txtBox1.SelectedText, "not equal") 

    End Sub 
+0

EventArgs.Emptyを使用してください –

+0

ありがとうございます^^ – Tom

関連する問題