2012-04-02 10 views
2

Ich fange gerade an, in Testentwicklung zu kommen, und ich bemühe mich zu verstehen, was ich testen soll. Es gibt eine Menge foobarer Beispiele, aber ich habe Schwierigkeiten, meine Projekteinheiten zu testen. Nehmen wir zum Beispiel diese Funktion, die eine einfache kehrt die Zeilen einer Textdatei als Liste:Python Nose Test Beispiel

def getLines(filename): 
    try: 
     f = open(filename,'rb') 
     lines = f.readlines() 
     f.close() 
    except: 
     break 
    return lines 

Ist dies Ihre Funktion war, was würden Sie testen? Sie müssen den Code nicht schreiben, sagen Sie mir einfach, wenn Sie möchten.

Dank

+1

Warum haben Sie eine solche Funktion an erster Stelle? 'mit open (Dateiname, 'rb') als f: lines = f.readlines()' ist nicht gerade etwas, was du abstrahieren musst. – Amber

+0

Ich mag das, aber kann ich Ausnahmen mit 'mit' behandeln? – MFB

+0

Ihr Code wie geschrieben würde die Ausnahmen nicht behandeln wie es ist. Aber ja, du könntest eine 'with'-Anweisung in einen' try'/'except'-Block schreiben. – Amber

Antwort

4

So würde Ihre Funktion eine leere Liste zurück, wenn der Dateiname ungültig ist und würde liefert eine Liste mit allen Zeilen, wenn Dateinamen

Sie gültig ist, ein KnownValues ​​Wörterbuch mit einer Dateinamen und Nummer definieren könnte von Zeilen in der Datei, wie so,

file1 -> 20 
file2 -> 30 
file3 -> 0 // invalid entry 

Dann könnte man eine assertEqual zählen die Anzahl der Elemente in der Liste schreiben, die die Funktion

zurückkehrt 210
-2

In der Computerprogrammierung ist Komponententest eine Methode, bei der einzelne Quellcodeeinheiten getestet werden, um festzustellen, ob sie für den Gebrauch geeignet sind. Eine Einheit ist der kleinste testbare Teil einer Anwendung. Bei der prozeduralen Programmierung kann eine Einheit eine einzelne Funktion oder Prozedur sein. Komponententests werden von Programmierern oder gelegentlich von White-Box-Testern erstellt.

Ihre Funktion wird verwendet, um statistische Dokumente die Anzahl der Zeilen, Input-Parameter ist ein Dateiobjekt, so können Sie für die unterschiedliche Anzahl von Zeilen der Datei als Eingabe vorbereiten, Dann könnten Sie eine assertEqual schreiben, um die Anzahl zu zählen Elemente in der Liste, die die Funktion zurückgibt.

Zusätzlich müssen Sie auch Ausnahmen überprüft werden

Verwandte Themen