Ich arbeite für ein großes Unternehmen und bin für eine große Java-Anwendung mit Tausenden von Junit-Tests verantwortlich. Seit ich in diese Rolle gewechselt bin, gab es 200-300 defekte Tests (wahrscheinlich seit Jahren defekt). Die Tests sind alt und zerbrechlich und es gibt eine Menge Spaghetti-Abhängigkeiten, die normalerweise mit Live-Sandbox-Daten enden. …
Beginnen wir mit einem Beispiel. Nehmen wir an, ich habe eine Methode namens export, die stark vom DB-Schema abhängt. Und mit „stark abhängig“ meine ich, dass das Hinzufügen einer neuen Spalte zu einer bestimmten Tabelle oft (sehr oft) zu einer entsprechenden exportMethodenänderung führt (normalerweise sollten Sie das neue Feld auch …
Vor einiger Zeit las ich auf einer Stapelüberlauf-Antwort, die ich nicht finden kann, einen Satz, der erklärte, dass Sie öffentliche APIs testen sollten, und der Autor sagte, dass Sie Schnittstellen testen sollten. Der Autor erklärte auch, dass bei einer Änderung der Methodenimplementierung der Testfall nicht geändert werden muss, da dies …
Angenommen, es gibt eine Utility-Klasse, die einige häufig verwendete statische Methoden enthält, die von vielen anderen Klassen überall in Ihrem Code verwendet werden. Wie würden Sie Ihre Komponententests für die Verbraucher des Versorgungsunternehmens auslegen, damit deren Tests fehlschlagen, wenn einer der Versorgungstests nicht bestanden wird? Können Sie das tun oder …
Ich habe eine Schnittstelle aufgerufen IContext. Zu diesem Zweck spielt es keine Rolle, was es tut, mit Ausnahme der folgenden: T GetService<T>(); Diese Methode überprüft den aktuellen DI-Container der Anwendung und versucht, die Abhängigkeit aufzulösen. Ziemlich normal, denke ich. In meiner ASP.NET MVC-Anwendung sieht mein Konstruktor folgendermaßen aus. protected MyControllerBase(IContext …
Ich habe ein webbasiertes Lernspiel geerbt. Im letzten Jahr habe ich daran gearbeitet, den Code zu stabilisieren und neue Funktionen hinzuzufügen. Der größte Teil der Logik befindet sich im Front-End. So decken Back-End-Unit-Tests, obwohl sie hilfreich sind, einen kleinen Prozentsatz des Codes ab. Das Spiel ist an einem Punkt angelangt, …
Wertmäßig sehe ich in meiner Praxis zwei Gruppen von Unit-Tests: Tests, die eine nicht triviale Logik testen. Das Schreiben (entweder vor oder nach der Implementierung) deckt einige Probleme / potenzielle Fehler auf und hilft, sicher zu sein, dass die Logik in Zukunft geändert wird. Tests, die eine sehr triviale Logik …
Ich habe diese Klasse geschrieben, die einige Dinge tut (vielleicht ist dies ein Verstoß gegen das Prinzip der Einzelverantwortung). Mir ist jetzt klar, dass ein anderer Teil des Projekts ein Stück dieser Logik benötigt, und ich werde es aufzeigen, indem ich eine Klasse aus meinem ursprünglichen System im Test extrahiere. …
Ich habe also ein Authentifizierungsmodul, das ich vor einiger Zeit geschrieben habe. Jetzt sehe ich die Fehler auf meinem Weg und schreibe Unit-Tests dafür. Während ich Unit-Tests schreibe, fällt es mir schwer, gute Namen und gute Testbereiche zu finden. Zum Beispiel habe ich Dinge wie RequiresLogin_should_redirect_when_not_logged_in RequiresLogin_should_pass_through_when_logged_in Login_soll_arbeiten_wenn_proper_credentials_gegeben werden Persönlich …
Ich mache Unit-Tests und in einer meiner Klassen muss ich eine Mail von einer der Methoden senden, also füge ich mit Hilfe der Konstruktorinjektion eine Instanz der Zend_MailKlasse ein, die im Zend-Framework ist. Nun argumentieren einige Leute, wenn eine Bibliothek stabil genug ist und sich nicht oft ändert, besteht keine …
Bei einem aktuellen Projekt sollten die Kräfte, die Unit-Tests wünschen, in unseren Entwicklungszyklus einbezogen werden, um die konstante Anzahl von Fehlern zu vermeiden, die in unseren Code zu sickern scheinen. Das Problem ist, dass der Spaghetti-Code zu 95% prozedural ist, mit dem ich noch nie Unit-Tests durchgeführt habe (alle meine …
Es gibt zwar Möglichkeiten, die Ausführung von Komponententests zu verhindern, aber welchen Wert hat die Überprüfung fehlgeschlagener Komponententests? Ich werde ein einfaches Beispiel verwenden: Groß- und Kleinschreibung. Der aktuelle Code unterscheidet zwischen Groß- und Kleinschreibung. Eine gültige Eingabe in die Methode ist "Cat" und würde eine Enumeration von Animal.Cat zurückgeben. …
Manchmal schreibe ich Unit-Testfälle für Code, den andere Entwickler geschrieben haben. Es gibt Fälle, in denen ich wirklich nicht weiß, was der Entwickler versucht (der geschäftliche Teil) und ich manipuliere einfach den Testfall, um die grüne Linie zu erhalten. Sind diese Dinge in der Branche normal? Was ist der normale …
Ich schreibe JUnit-Komponententests für meine Klassen. Ist es besser, für jede Methode eine eigene Klasse zu haben oder nur eine Testklasse für jede tatsächliche Klasse?
Was tun Sie, wenn Sie einen Test schreiben und an den Punkt gelangen, an dem Sie den Test bestehen müssen, und wenn Sie feststellen, dass Sie eine zusätzliche Funktionalität benötigen, die in ihre eigene Funktion unterteilt werden sollte? Diese neue Funktion muss ebenfalls getestet werden, aber der TDD-Zyklus sagt, dass …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.