Das Schreiben von Tests, die bei der Entwicklung eines Systems helfen, ist schwierig, und Sie erreichen Ihr Ziel, indem Sie intelligente Tests vermeiden und dumme Tests bevorzugen. Lassen Sie uns eintauchen.
Spektrum zwischen Explizitheit und der Vermeidung von Duplikaten, und es liegt an Ihnen, eine gute Balance zu finden. Bei Tests sollte die Fähigkeit, ihre Bedeutung zu vermitteln, über allem stehen.
Das liegt daran, dass ein Hauptziel von Programmiertests darin besteht, den Produktionscode zu erklären, wie ich hier bereits erwähnt habe. Das Letzte, was Sie wollen, ist, dass Sie zusätzlich zum Verständnis des Produktionscodes auch noch die Bedeutung der Tests entschlüsseln müssen.
Es gibt Strategien, um zu Tests zu gelangen, die sowohl anschaulich als auch leicht zu pflegen sind, wie z.B.:
Das Paradoxon der intelligenten Tests
Klug ist immer besser als dumm, nicht wahr? Vielleicht, vielleicht aber auch nicht. Dieses Mal befassen wir uns mit dem Paradoxon, dass dumme Programmierertests den intelligenten Tests überlegen sind. Dieses Paradoxon verlangt nach einer Erklärung, aber zunächst müssen wir uns überlegen, wie Tests sein sollten.Gewünschte Qualitäten von Programmiertests ☝️
Gut geschriebene automatisierte Tests sind:- Leicht zu lesen
- Absicht aufdecken
- Fokussiert
Anatomie eines intelligenten Tests
Was ist also ein intelligenter Test? Intelligente Tests enthalten eine Logik, die die wahre Bedeutung des Tests verschleiert. Diese Logik könnte zum Beispiel für eines der folgenden Ziele gelten:- Erfassen einer gemeinsamen Einrichtung
- Erstellen von Test-In- oder Output
- Verringerung der Anzahl der Testschritte
Überlegenheit von Dummheitstests
Dumme Tests enthalten keine Magie und erfordern keine geistige Gymnastik, um sie zu verstehen. Sie sind leicht zu lesen und enthüllen Ihre Absichten. Großartige Tests mögen DRY sein, aber die besten Tests folgen dem DAMP-Prinzip (Descriptive and Meaningful Phrases). Code bewegt sich immer auf einem- Das Test Data Builder-Muster , mit dem Sie Testdaten auf bessere Weise konstruieren können.
- Eine dünne, testspezifische API um Ihren Produktionscode herum, die die Schritte ausdrucksstärker und tiefgreifender macht.
- Einsatz von testgetriebener Entwicklung, die aussagekräftige Tests von Beginn des Codes an fördert.
Fazit
Klug ist nicht immer besser, vor allem, wenn es um Tests geht. Idealerweise sollten Programmiertests einfach zu lesen sein und ihre Absicht klar zum Ausdruck bringen, aber das ist schwierig. Sie gelangen zu großartigen Tests, indem Sie sich in die Lage des zukünftigen Lesers versetzen. Außerdem machen Sie Ihre Tests DAMP statt DRY, indem Sie die Aussagekraft über die Vermeidung von Duplikaten stellen. Das Ergebnis sind automatisierte Tests, die als Katalysator für Veränderungen dienen, anstatt sie zu behindern.Verfasst von
Roy Straub
Passionate about Software Craftsmanship. Interested in subjects such as Clean Code, Domain Driven Design and Extreme Programming. Happily coding since 2010.
Unsere Ideen
Weitere Blogs
Contact
Let’s discuss how we can support your journey.




