Testgetriebene Entwicklung. | Komentor

Haben Sie sich jemals gefragt, wie man Tests in Python durchführt und was sie wirklich sind? (Test Driven Development in Python), ziemlich hart, wie manche vielleicht sagen. Dies ist Ihr One-Stop-Blog, um zu verstehen, was es ist und wie es funktioniert.
Testgetriebene Entwicklung ist eine Softwareentwicklungstechnik, bei der Sie zuerst Tests schreiben, bevor Sie den Code selbst schreiben. Dies ist normalerweise ein sich wiederholender Zyklus, bei dem die Funktionalität aus bestimmten Testfällen geschrieben wird. Bei den Tests schlagen sie fehl, wenn Sie Code schreiben, um sich von den Fehlern leiten zu lassen. Also verbessern wir die Software, um neue Tests zu bestehen nur. Im Gegensatz zum Softwareentwicklungsprozess, der das Hinzufügen von Code ermöglicht, der nachweislich die Anforderungen nicht erfüllt.
Auf diese Weise führt Sie der Test durch das Schreiben des Codes.

Wir werden das Unittest-Modul für das Beispiel in diesem Blog verwenden. Das Unittest-Testframework ist das xUnit-Style-Framework von Python.

Es ist ein Standardmodul, das Sie bereits haben, wenn Sie Python Version 2.1 oder höher haben

Bisher wissen wir, dass die Tests nichts bewirken, und wir wollen jetzt den zu testenden Code hinzufügen 😕 Jetzt können Sie mit dem obigen Code versuchen, ihn auszuführen, um die Ausgabe zu sehen Bitte beachten Sie, dass der Code fehlschlägt.

Wenn Sie den Test jetzt zuerst ausführen, erstellen wir eine Python-Datei, um den Modulimportfehler zu beheben. Denken Sie daran, dass wir den Test als Leitfaden für die Erstellung unseres Codes / unserer App / (wie auch immer Sie es nennen mögen) verwenden. Also führen wir den Code wiederholt aus, wenn wir die Fehler/Ausfälle erhalten, und erfahren, was als nächstes zu tun ist. Obwohl wir wissen, was der Code tatsächlich macht, ist es am besten zu wissen, wie man die Entwicklung auf diese Weise durchführt.

Ein weiteres Beispiel ist, wenn Ihnen ein Assertionsfehler mit dem erwarteten Wert 10 mitgeteilt wird. Wenn Sie in diesem Fall den Wert 10 zurückgeben, wird der Test bestanden, ist aber nicht effizient genug, daher müssen Sie weitere Tests hinzufügen, um Ihren zu machen Code am effizientesten.

Ein weiteres leicht verständliches Beispiel ist, wenn wir einen Fehler erhalten, weil die Funktion/Methode add_numbers nicht vorhanden ist, werden Sie die Methode in der Klasse MathOperations erstellen. Schritt für Schritt, bis Sie den Code fertig haben.

Assertion-Anweisungen in Unittest umfassen:

  assertEqual(first, second, msg=None), (# asserts that first == second)
    assertNotEqual(first, second, msg=None), (# asserts first != second)
    assertTrue(expr, msg=None), (# asserts that expr returns True)
    assertFalse(expr, msg=None), (# asserts that expr returns False)
    assertIs(first, second, msg=None), (# asserts that first is in second)
    assertIsNot(first, second, msg=None), (# assert first is not second)
    assertIsNone(expr, msg=None), (# assert expr returns None)
    assertIsNotNone(expr, msg=None), (# assert expr’s return value isn’t None)
    assertIn(first, second, msg=None), ( # assert fist is in second *arrays*)
    assertIsInstance(obj, cls, msg=None), ( # assert that obj is of type cls)
    assertNotIn(first, second, msg=None),(# assert first isn’t in second*arrays*)
    assertNotIsInstance(obj, cls, msg=None).args, \**kwargs), ( #assert that obj is of type cls )

Es ist auch möglich zu prüfen, ob Ausnahmen und Warnungen ausgelöst werden.
Dazu verwenden wir meistens assertRaises(exc, fun, *). Die obige Liste von Assertion-Anweisungen wird am häufigsten verwendet, aber wir haben auch andere, die in diesem Beitrag nicht erwähnt werden.

class MathOperations():
   def __init__(self):
   	pass
    
  def add_numbers(self, a, b):
   return a+b

  def multiply_numbers(self, a, b):
   return a*b

  def subtract_numbers(self, a, b):
   return a-b

Bei Fragen bin ich nur einen Kontakt entfernt, und sehen Sie sich gerne mehr über mich auf meiner an Seite? ˅ Wiedersehen {*.’}.
Ein Klatschen, zwei Klatschen, vierzig {du kennst die Übung}

Similar Posts

Leave a Reply

Your email address will not be published.