Ein bisschen Kontext: Früher musste ich heute einen SQL-Code aktualisieren, den ein anderer Kollege von mir bereitgestellt hatte, und da es ein ziemlich großes Skript ist, wird es als separate Datei gespeichert (die dann zur Laufzeit gelesen und ausgeführt wird). Dabei habe ich versehentlich zwei Bugs wieder eingeführt, die wir vor ein paar Monaten hatten, nämlich:
- Aus welchem Grund auch immer, die ASCII-Datei wurde in UTF-16 verschlüsselt (der Kollege hat mir die Datei per E-Mail geschickt, was sie möglicherweise verursacht hat).
- In dem Skript fehlten die ersten
SET
Anweisungen (erforderlich aufgrund einiger Treiberprobleme in der Produktion, jedoch nicht bei einer lokalen Neuinstallation).
Nachdem ich dies ungefähr eine Stunde lang (erneut) debuggt hatte, habe ich mich dazu entschlossen, einige Komponententests zu schreiben, um sicherzustellen, dass dies nie wieder vorkommt (und eine schnelle Möglichkeit, dies zu beheben, in die Bestätigungsnachricht aufzunehmen, um zukünftigen Entwicklern eine einfache Lösung zu bieten).
Als ich diesen Code drückte, kam ein anderer Kollege (der auch unser Teamleiter ist) auf mich zu und sagte mir, ich solle diese Dinge nicht noch einmal machen, weil:
"Diese Dinge gehören nicht in Unit-Tests"
"Unit-Tests sollten nur verwendet werden, um den Fluss Ihres Codes zu überprüfen"
Ich bin jetzt ziemlich konfliktreich, da ich immer noch der Meinung bin, dass das, was ich tue, nicht falsch ist, da dieser Bug in Zukunft nicht wieder eingeführt werden würde. Allerdings arbeitet dieser Kollege als Senior und kann am Ende des Tages entscheiden, was Wir verbringen unsere Zeit auf. Was soll ich machen? Liege ich falsch, wenn ich das so mache? Gilt es als schlechte Praxis?