2016-08-08 36 views
0

Wahrscheinlich einfache Frage, aber ich bin Anfänger in diesem Bereich. Haben NUnit Projekt und möchten ähnliche Funktionen wie dieses Beispiel unten testen. Wie Sie sehen, gebe ich eine ID an ihn und dann durch, wenn Daten gefunden, lösche ich Datensätze.NUnit Test, wie man Funktion vorbereitet/ändert

Jetzt in Bezug auf den Test möchte ich anstatt zu löschen ich möchte alle diese IDs sammeln (diejenigen, die gelöscht werden) und vergleichen sie in meinem Testprojekt.

Was ich mir vorgenommen habe, ist meine Funktion mit zusätzlichen Variablen zu erweitern, IDs zu speichern, dann fügen Sie zusätzliche parameter wie bistTest als Boolean und an Stellen, wo Löschungen setzen stat: wie Test dann nicht löschen, aber IDs zu Variablen hinzufügen , aber ich denke, es ist eine sehr schlechte Idee.

Wie sollte dies richtig gemacht werden?

Public Sub DelEverythingAssociatedWithSection(secId As Integer) 
     Using con As New SqlConnection(strcon) 
      con.Open() 
      Using transaction = con.BeginTransaction 
       Try 
        Dim dtHtmlSection_KatSubkatDAL As New DataTable 
        dtHtmlSection_KatSubkatDAL = CType(New HtmlSection_KatSubkatDAL().GetAllBySecId(secId), DataTable) 
        If dtHtmlSection_KatSubkatDAL IsNot Nothing Then 
         For Each sec_katsubkat As DataRow In dtHtmlSection_KatSubkatDAL.Rows 
          Dim dtSubSec_SecKatSubKat_SubSubKat As New DataTable 
          dtSubSec_SecKatSubKat_SubSubKat = CType(New DALSubSec_SecKatSubKat_SubSubKat().GetAllBySec_KatSub(CInt(sec_katsubkat(0))), DataTable) 
          If dtSubSec_SecKatSubKat_SubSubKat IsNot Nothing Then 
           For Each subsec As DataRow In dtSubSec_SecKatSubKat_SubSubKat.Rows 
            Dim dtHtmlSentence_SubSec_SecKatSubKat_SubSubKat As New DataTable 
            dtHtmlSentence_SubSec_SecKatSubKat_SubSubKat = CType(New HtmlSentence_SubSec_SecKatSubKat_SubSubKatDAL().GetAllBySubSec_SecKatSubKat_SubSubKat(CInt(subsec(0))), DataTable) 
            If dtHtmlSentence_SubSec_SecKatSubKat_SubSubKat IsNot Nothing Then 
             For Each sent As DataRow In dtHtmlSentence_SubSec_SecKatSubKat_SubSubKat.Rows 
              Dim dtArtikel_Beschreibung As New DataTable 
              dtArtikel_Beschreibung = CType(New Artikel_BeschreibungDAL().GetAllBySentence(CInt(sent(0))), DataTable) 
              If dtArtikel_Beschreibung IsNot Nothing Then 
               For Each artBesch As DataRow In dtArtikel_Beschreibung.Rows 
                Call New Artikel_BeschreibungDAL().Delete(CInt(artBesch(0)), transaction) 
               Next 
              End If 
              Call New HtmlSentence_SubSec_SecKatSubKat_SubSubKatDAL().Delete(CInt(sent(0)), transaction) 
             Next 
            End If 
            Call New DALSubSec_SecKatSubKat_SubSubKat().Delete(CInt(subsec(0)), transaction) 
           Next 
          End If 
          Call New HtmlSection_KatSubkatDAL().Delete(CInt(sec_katsubkat(0)), transaction) 
         Next 
        End If 
        Call New DALSection().Delete(secId, transaction) 
        'If we made it this far without an exception, then commit. 
        transaction.Commit() 
       Catch ex As Exception 
        transaction.Rollback() 
        Throw 'Rethrow exception. 
       End Try 
      End Using 
     End Using 
    End Sub 
+0

jemand zu antworten? –

Antwort

0

Ich denke, Sie machen es zu kompliziert. Schreiben Sie einfach einen Test wie diesen ... (Pseudocode)

// Arrange 
Set up a section with some data. 
Assume.That(section exists with data) // optional, in case setup fails 

// Act 
Delete the section 

// Assert 
Try to get the data in the section 
Assert.That(no data is found) 
+0

hallo, sei ehrlich, komm nicht. Sehen Sie dort nichts, das Daten anstelle der Löschung zurückgeben würde, Können Sie mehr erklären? –

+0

Wenn Sie testen, dass Sie einen Abschnitt löschen können, erwarten Sie nicht, dass Daten in diesem Abschnitt zurückgegeben werden, richtig? – Charlie

+0

Es ist Pseudo-Code! Viele sind weggelassen. :-) Ich bearbeitet, um zu zeigen, wo Sie versuchen würden, die Daten zu erhalten. – Charlie