UI-Test vs unit-Tests
was ist der unterschiedliche Zweck von diesen beiden? Ich meine, in welchem Zustand ich tun sollte, als jeder von Ihnen?
wie zum Beispiel Zustand. wenn Sie die backend-server und mehrere front-end-Web-Sites, die Sie tun?do-unit-Test der backend-server oder do-UI-Tests im web-UI der erste?
angesichts der Bedingung, die server und den front-end-Bahnen, die bereits existieren, es ist also nicht eine iterative Konstruktion zu bauen, zusammen mit (TDD)...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unit-Tests testen will kleine Teile des Codes (einzelne Klassen /Methoden) isoliert vom rest der Welt.
UI Tests kann ein anderer name für system - /Funktions - /Abnahmetests, wo Sie testen das ganze system zusammen, um sicherzustellen, dass es tut, was es tun soll und unter realen Umständen. (Es sei denn, von UI Tests du meinst usability /look & fühlen, usw. die Prüfung, die ist in der Regel eingeschränkt, um details auf der Benutzeroberfläche.)
Müssen Sie beide in die meisten Projekte, aber zu unterschiedlichen Zeiten: unit-Tests während der Entwicklung (idealerweise von Anfang an, TDD Stil), und UI Tests etwas später, wenn Sie tatsächlich haben einige komplette end-to-end-Funktionalität zu testen.
Wenn Sie bereits das system läuft, aber keine Prüfungen, man muss praktisch legacy-code. Bemühen um die beste Testabdeckung erreichbar mit dem geringsten Aufwand zuerst, was bedeutet, dass high-level-funktionalen tests. Hinzufügen von unit-tests ist ebenfalls notwendig, aber es braucht viel mehr Aufwand, und beginnt zurück zu zahlen später.
Empfohlene Lektüre: Working effectively with Legacy Code.
Unit-test sollte immer durchgeführt werden. Unittests sind es, nachzuweisen, dass jede EINHEIT (lies: Objekt) Ihre technische Lösung liefert die erwarteten Ergebnisse. Um es sehr (vielleicht zu) einfache, user-Tests ist es, zu überprüfen, ob Ihr system erfüllt die Bedürfnisse und Anforderungen der Anwender.
Test-Pyramide [1] ist ein wichtiges Konzept, das hier, gut beschrieben von Martin Fawler.
In kurzen, tests, führen Sie Ende-zu-Ende-über die Benutzeroberfläche sind: spröde und teuer zu schreiben. Sie können prüfen, test-Aufnahme-tools [2] zu speed-recording und re-recording-up. Haftungsausschluss - ich bin Entwickler von solchen Tools.
[1] https://martinfowler.com/articles/practical-test-pyramid.html
[2] https://anwendo.com
Zusätzlich zu den akzeptierten Antworten, heute, ich kam gerade mit dieser Frage, warum man nicht einfach programmgesteuert auslösen, layout-Funktionen und dann unit-testen Sie Ihre Logik um das auch?
Die Antwort bekam ich von einem senior dev war: programmgesteuert auslösen-und layout-Funktionen werden nicht eine absolute Kopie des real-user-experience. In der realen Welt, das system löst viele Rückrufe, wie wenn der Benutzer für eine app, die Hintergründe oder vordergründe der app. Natürlich können Sie auslösen solcher Ereignisse manuell und erneut testen, aber würde Sie sicher sein, Sie haben alle Ereignisse, die in allen Sequenzen Recht?!
Die Reale Benutzer-Erfahrung ist eine, wo die user aktuelle Netzwerk aufruft, tippt auf Bildschirmen, lädt mehrere Bildschirme übereinander und manchmal erhalten Sie möglicherweise system Rückrufe. Rückrufe, die Sie vergessen haben zu verspotten, dass Sie nicht richtig zu spotten. In unit-tests Sie sind hauptsächlich Tests in isolation. Im UI-test, die Einrichtung der app, möglicherweise müssen Sie die login, etc. Dass Stapel, die Sie bauen, ist sehr viel komplexer, vs unit-test. Daher ist es besser, nicht zu mischen, unit-testing mit UI Tests.