[Python] Was ich getan habe, um Unit Test zu machen

Inhaltsverzeichnis

Voraussetzungen

Jemand, der eine kleine Operation auf einem schwarzen Bildschirm ausführen kann Die Spezifikation kann beliebig sein, solange Python funktioniert

Was ist UnitTest überhaupt?

Gerätetest(Gerätetest)Was ist|Arten der Softwarevalidierung|Techmatrix Co., Ltd.

Es bezieht sich auf das Testen, ob ein Programm mit der kleinsten Granularität, aus der das Programm besteht, ordnungsgemäß funktioniert, wie z. B. die Methoden des Programms. In der IT-Branche wird es auch als Unit-Test bezeichnet.

Es gibt Bibliotheken, die Unit-Tests in jeder Sprache durchführen. Unten ist ein Beispiel

Abgesehen davon sind in Ruby usw. Minitest und Rspec der Mechanismus des Unit-Tests.

Was müssen Sie tun, um zu testen?

Um UnitTest in Python auszuführen, schreiben Sie eine Py-Datei, um den Testcode zu schreiben.

Weitere Informationen zum Schreiben detaillierter Tests finden Sie in der offiziellen japanischen Dokumentation.

unittest - Unit Test Framework - Python 3.8.6 Dokumentation

Erstellen Sie die folgenden Dateien mit VSCode usw.

In diesem Fall wird ein Testfall beschrieben, der absichtlich fehlschlägt.

sample.py

import unittest

class TestStringMethods(unittest.TestCase):

    def test_false(self): 
        self.assertFalse("hoge", "hoge")

if __name__ == '__main__':
    unittest.main()

Versuchen Sie als Nächstes, das Programm auf der Konsole auszuführen.

Bei der Ausführung auf der CLI können Sie UnitTest mit dem folgenden Befehl ausführen.

python3 -m unittest sample.py

======================================================================
FAIL: test_false (test.sample.TestStringMethods)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/pcuser/Documents/GitHub/pysecret/test/sample.py", line 6, in test_false
    self.assertFalse("hoge", "hoge")
AssertionError: 'hoge' is not false : hoge

----------------------------------------------------------------------
Ran 1 test in 0.001s

FAILED (failures=1)

Wenn FAILD angezeigt wird und es so fehlschlägt, ist es OK Wenn ERROR angezeigt wird, liegt möglicherweise ein Grammatikproblem in Python vor. Bitte googeln Sie es.

Einige der häufigsten Fehler in Python sind: [Referenzfehlermeldung einfügen]

Kann die Methode nicht aufrufen?

Danach werde ich den Testfall tatsächlich beschreiben.

Um den Test so praktisch wie möglich zu gestalten, erstellen Sie ein zu testendes Programm.

hello.py


def helloMethod(str):
    msg = str
    return msg

if __name__ == '__main__':
    main()

Danach fügen wir inport hello zu test.py hinzu, damit helloMethod aufgerufen werden kann.

import unittest
import hello <-So was

Zu gebende Informationen Welche Informationen müssen ausgegeben werden?

Dieses Mal habe ich eine Methode erstellt, um einen einfachen Papagei zurückzugeben. Was Sie als Eingabe übergeben, ist die str-Variable der Zeichenfolge, die Sie als Argument der Methode übergeben. Und der erwartete Wert ist, dass str als Ausgabe zurückgegeben wird, wenn die Methode ausgeführt wird.

import unittest
import hello

class TestStringMethods(unittest.TestCase):

    # def test_false(self):
    #     self.assertFalse("hoge", "hoge")
    
    def test_hello(self):
        input_str =  "Hello"
        msg = hello.helloMethod(input_str)
        self.assertEqual(msg, input_str)

if __name__ == '__main__':
    unittest.main()

Was muss ich tun, um den Test zu bestehen?

Verwenden Sie die Assert-Methode mit dem in der Variablen msg gespeicherten Wert, um zu überprüfen, ob das Ergebnis korrekt ist. Stellen Sie sicher, dass die Werte für input_str identisch sind.

Verwenden Sie zum Schreiben self.assertEqual, da die Assert-Methode der UnitTest-Klasse verwendet wird.

Da es bereits in die Quelle geschrieben wurde, führen Sie denselben Befehl erneut aus, der den Start von UnitTest selbst bestätigt hat.

python3 -m unittest sample.py


.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

Wenn auf der Konsole das Wort OK angezeigt wird, ist der Test erfolgreich.

Recommended Posts

[Python] Was ich getan habe, um Unit Test zu machen
Was ich getan habe, um Python-Speicher zu speichern
Ich möchte Dunnetts Test in Python machen
Was ich beim Update von Python 2.6 auf 2.7 gemacht habe
Was tun mit PYTHON Release?
Was ich getan habe, um die Python2 EOL mit Zuversicht zu begrüßen
Wie man einen Taschentest mit Python macht
Was ich mit Python-Arrays gemacht habe
Was ich süchtig nach Python Autorun war
Was ich getan habe, als ich Python schneller machen wollte - Numba Edition -
Was tun, um eine Google-Tabelle in Python zu erhalten?
Python-Unit-Test-Vorlage
[Bei Coder] Was ich getan habe, um den grünen Rang in Python zu erreichen
Was soll ich verwenden, um Typvergleiche in Python durchzuführen?
Was beim Nachahmen zu tun ist, wird in Python eingebettet
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Was tun, wenn "Name xxx nicht importiert werden kann" [Python]
Schreiben Sie Code in UnitTest, eine Python-Webanwendung
Ich habe eine Python-Bibliothek erstellt, die einen rollierenden Rang hat
Was ich getan habe, um eine SSH-Verbindung zur VPS Ubuntu-Umgebung herzustellen
Wovon ich süchtig war, als ich Python Tornado benutzte
Ich möchte am Ende etwas mit Python machen
Was ich in Python gelernt habe
Was tun, wenn `Argumente [0] .scrollIntoView ();` in Python-Selen fehlschlägt?
Was ich getan habe, um die String-Suchaufgabe zu beschleunigen
Ich möchte so etwas wie Uniq in Python sortieren
Wovon ich süchtig war, als der Processing-Benutzer zu Python wechselte
Was tun, wenn in Python "SSL: CERTIFICATE_VERIFY_FAILED _ssl.c: 1056" angezeigt wird?
Was tun, wenn Ubuntu abstürzt?
[Python] Wie man PCA mit Python macht
Was tun, wenn Yum kaputt geht?
Ich habe versucht, Python zu berühren (Installation)
Was tun mit der Installation von Magics?
H29.2.27 ~ 3.5 Zusammenfassung meiner Arbeit
Schwanzrekursion mit Python2 durchführen
Unit Test Log Ausgabe mit Python
Ich möchte ○○ mit Pandas machen
Ich möchte mit Python debuggen
Python | Was Sie mit Python machen können
Hat sich nicht von Python 2 auf 3 geändert
Was ich getan habe, um Anwendungsprotokolle in der GAE Flexible Environment auszugeben.
Beachten Sie, was Sie getan haben, um Flycheck mit Python zu verwenden
Was tun, wenn Python unter Git für Windows nicht funktioniert?
Was tun, wenn Sie pyaudio nicht mit pip #Python installieren können?
Was tun, wenn in Python minus Null angezeigt wird?
Ich wollte es so machen, als würde ich einen Testfall für AtCoder ausführen.
Wovon ich süchtig war, als ich ALE in Vim für Python einführte
Was ich mit json.dumps in Pythons base64-Codierung süchtig gemacht habe
Was tun, wenn Python "schwerwiegender Fehler: Datei 'stdio.h' nicht gefunden" anzeigt?
Ich möchte den vollständigen Text mit elasticsearch + python durchsuchen
Was tun, wenn beim Ausführen von Python eine Warnung zur unsicheren Plattform angezeigt wird?
Ich wollte so etwas wie Elixirs Pipe in Python machen
Was tun, wenn PyAudio unter Python 3.7, 3.8, 3.9 unter Windows nicht installiert werden kann?
Was tun, wenn "Ich kann die Site nicht sehen !!!!"
Was tun, wenn ModuleNotFoundError: In Python tritt kein Modul mit dem Namen 'XXX' auf
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
Was soll ich denn mit der Python-Verzeichnisstruktur machen?