2012-04-04 7 views
-2

Der Teil meiner Aufgabe besteht darin, Tests für jede Funktion zu erstellen. Diese ein bisschen lang, aber ich bin so verwirrt. Ich habe einen Link unter dieser Funktion, so dass Sie sehen können, wie es aussieht
ersten Code ist extrem lang, weil.So schreiben Sie Testfälle für die Zuweisung

def load_profiles(profiles_file, person_to_friends, person_to_networks): 
    '''(file, dict of {str : list of strs}, dict of {str : list of strs}) -> NoneType 
    Update person to friends and person to networks dictionaries to include 
    the data in open file.''' 

    # for updating person_to_friends dict 
    update_p_to_f(profiles_file, person_to_friends) 
    update_p_to_n(profiles_file, person_to_networks) 

heren der gesamten Code: http://shrib.com/8EF4E8Z3, Getestet habe ich es durch Mainblock und es funktioniert. Diese ist die Textdatei (profiles_file) wurden wir vorausgesetzt, wir sind mit ihnen zu konvertieren: http://shrib.com/zI61fmNP

Wie führe ich Testfälle für diese durch die Nase, was irgendwie von Testergebnissen gibt es? Oder bin ich nicht spezifisch genug?

Import Nase Import a3_functions

def

wenn Name == 'Haupt' test_load_profiles_: nose.runmodule() ging ich so weit, dann wusste ich nicht, was ich kann für die Funktion testen.

+0

Ja, Sie sind nicht spezifisch genug. Testfälle sind Beispiele für Daten, die in Ihr Programm eingegeben werden können. Sie müssen sehen, ob Ihre Ausgabe korrekt ist und Ihr Programm nicht fehlschlägt. Um Testfälle auszuführen, können Sie einfach einige Dateien wie die 'profiles_file' erstellen und Ihr Programm mit ihnen ausführen. Sehen Sie, ob es funktioniert. Erstellen Sie verschiedene Dateitypen mit unterschiedlichen Daten und sehen Sie, ob sie alle funktionieren. Es ist schwer zu sehen, welche Testfälle Sie ausführen sollten, wenn wir nichts über die Daten wissen. – jamylak

+0

Ohh, weil es so viele Daten gibt, kann ich es hier nicht kopieren .. es sei denn, ich gehe tatsächlich ins Detail 1 auf 1 mit ihnen. Und die Leute würden sich die Mühe machen, es zu lesen. Um diese Art von Daten zu testen, müssen Sie Ihre eigenen Texte erstellen? – xevaaa

+0

Ja, erstellen Sie Ihre eigenen Dateien oder welche Eingaben auch immer Ihr Programm akzeptiert. Versuchen Sie und verwenden Sie fast jede andere Art von Sache, die Sie denken können, um zu sehen, ob Ihr Programm für alle Fälle funktioniert. – jamylak

Antwort

1

Nehmen wir an, der Code, den Sie bisher geschrieben haben, befindet sich in einem Modul namens "mycode".

Schreiben Sie ein neues Modul namens testmycode. (D erstellen eine Python-Datei namens testmycode.py)

Dort, importieren Sie das Modul, das Sie testen möchten (mycode)

eine Funktion namens testupdate Write().

Schreiben Sie in dieser Funktion zuerst eine Textdatei (mit file.write), von der Sie erwarten, dass sie gültig ist. Lassen Sie update_p_to_f dann aktualisieren. Stellen Sie sicher, dass es das getan hat, was Sie erwarten, und verwenden Sie assert. Dies ist ein Test zum Lesen einer Textdatei.

Dann können Sie eine zweite Funktion namens testupdate_write() schreiben, wo Sie Ihren Code in eine Datei schreiben lassen - dann verifizieren Sie, dass das, was es geschrieben hat, korrekt ist.

die Tests auszuführen, verwenden (auf der Kommandozeile)

nosetests -sx testmycode.py 

Welche testmycode laden wird und alle Funktionen ausführen, die dort gefunden, die mit Test zu starten.

+0

Also, da es txt-Dateien als Parameter akzeptiert bedeutet das, dass ich Diff-Text-Dateien erstellen muss, nur um es zu testen? – xevaaa

+0

wenn mit 'diff' meinst du anders, ja. Die Idee besteht darin, verschiedene Aspekte der Funktion, die Sie testen möchten, abzudecken, um sicherzustellen, dass jede Codezeile wie erwartet funktioniert. – j13r

0

Wahrscheinlich möchten Sie beide testen, ob die Gesamtausgabe Ihres Programms korrekt ist und ob einzelne Teile Ihres Programms korrekt sind.

  • @ j13r hat bereits behandelt, wie Sie die allgemeine Korrektheit Ihres Programms für einen vollständigen Lauf testen können.
  • Sie erwähnen, dass Sie vier Hilfsfunktionen haben. Sie können Tests für diese separat schreiben.
  • Das Testen kleinerer Teile Ihres Codes ist hilfreich, da Sie jedes Stück auf zahlreiche und spezifischere Weise testen können, als wenn Sie nur das Ganze testen würden. Das Modul unittest ist ein Framework für die Durchführung von Tests.

    +0

    Sie können nose verwenden, um nur einzelne Tests auszuführen: nosetests -sx testmycode.py:testupdate – j13r

    +0

    Warte, ich muss also eine separate Datei für Hilfsfunktionen schreiben? Oder kann ich das alles nur unter die eine Funktion aufnehmen, unter die es fällt? – xevaaa

    Verwandte Themen