2017-07-27 1 views
1

Ich bin an dem Punkt, wo ich einen Komponententest für den komplexen Algorithmus schreiben sollte, den meine Funktion ausführt. Die Funktion benötigt beim Aufruf zwei obligatorische Argumente. Aufgrund der Kombination beider Argumente gibt die Funktion etwas zurück.Verringert sich der Wert von Komponententests mit der Komplexität des Komponententests?

function ReturnDesiredParagraphStyle(currParagraphStyle, nextParagraphStyle) 
{ 
    // logic 
} 

Das Problem ist jetzt, eine beliebige Kombination von Eingängen zu testen und um die Richtigkeit der gewünschten Ausgabe der Funktion I haben eine komplexe Logik innerhalb der Einheit Test zu schreiben, weil es so viele mögliche Eingänge (etwa 50 sind, für jedes Argument). Die komplexe Logik wäre eine Schleife mit dem Zweck, dass ich nicht jede Kombination von Eingaben manuell in dem Komponententest eingeben muss.

Ich verstehe, dass die meiste Zeit, um diesen Komponententest zu schreiben, eine Schicht der Sicherheit zur Verfügung stellen wird, aber es führt das Konzept des Komponententests ein wenig ad absurdum (weil die Logik im Komponententest sein wird so komplex und nichts testet die Logik im Komponententest)?

+2

Schreiben komplexer Logik, um faul zu sein und nicht richtig schreiben Ihre Tests ist falsch. Sie müssen die Tests nur einmal schreiben, also nehmen Sie sich die Zeit, es richtig zu machen und damit fertig zu werden. –

+0

Warum schreibst du das nicht als Antwort? Problem ist, es gibt so viele, vielleicht zu viele Kombinationen von Eingaben für die Funktion, um sie einfach alle manuell in den Komponententest zu schreiben. –

+0

Wenn meine Mathematik stimmt, gibt es etwa 2450 Kombinationen von Eingängen. Das ist zu viel, um es manuell im Komponententest einzugeben. –

Antwort

0

Ihre komplexe Logik im Komponententest entspricht genau der Logik, die Sie in der Funktion geschrieben haben, die Sie testen möchten. Das würde also keinen Sinn ergeben.

Wenn eine Funktion einen Rückgabewert basierend auf zwei oder mehr Argumenten berechnet, wird es fast unmöglich, einen Komponententest zu schreiben, wenn die Anzahl der verschiedenen Eingabekombinationen zu hoch ist. Und das passiert ziemlich schnell (exponentiell).

Aber natürlich sind nur ein paar verschiedene Kombinationen sinnvoll.

Verwandte Themen