In dieser Ausgabe werden wir das Thema JavaScript-Tests besprechen, um zu überprüfen, ob der Status und der Arbeitsmodus von Komponenten wie erwartet sind. Außerdem werden wir eine Testmethode vorstellen, mit der Testfälle einfach geschrieben werden können. Bei den hier erwähnten Tests kommen natürlich automatisierte Testmethoden zum Einsatz, die ein wichtiger Bestandteil der Software-Qualitätssicherung (QS) sind. Was die in dieser Artikelserie vorgestellte Smart Queue betrifft, umfassen unsere Testziele:
Überprüfen Sie für das erste Ziel einfach, ob die Eigenschaften des Objekts nach der Erstellung den Erwartungen entsprechen. Wir haben schon oft von „Erwartungskonformität“ gesprochen, und Assert ist dafür konzipiert. Einfach ausgedrückt besteht die Behauptung darin, sicherzustellen, dass der getestete Ausdruck „wahr“ ergibt. Andernfalls wird der Tester auf irgendeine Weise benachrichtigt und ihm dabei geholfen, den Testfall zu finden, bei dem die Behauptung fehlgeschlagen ist.
Das zweite Ziel ist etwas komplizierter. Da wir die sortierte Warteschlange (_sorted) während der Komponentencodierung und -implementierung im Abschluss verstecken, ist sie von außen nicht zugänglich. Es sind zwei Methoden zu berücksichtigen: (1) Refactoring des Codes, um die Testbarkeit des Codes zu erhöhen. Es gibt auch zwei Refactoring-Methoden: (a) Setzen Sie den Debug-Schalter und legen Sie _sorted nach außen offen, wenn er aktiviert ist. Fügen Sie Unabhängigkeitsdateien hinzu und fügen Sie den Code auf Build-Art zusammen, um schließlich eine Testversion zu generieren. (2) Testen Sie die Ergebnisse des Verhaltens und nicht des Prozesses. Die erstere Methode geht im Wesentlichen tief in den Laufzeitstatus der Komponente ein, während diese Methode nur die laufenden Ergebnisse der Komponente überprüft. In dieser Ausgabe wird die letztere Testmethode verwendet, und die erste Testmethode bleibt interessierten Lesern zum Üben überlassen :)
Es ist anzumerken, dass ich persönlich mit der ersten Methode nicht einverstanden bin. Warum? Lassen Sie mich zunächst über das Designkonzept dieser Aufgabenwarteschlange sprechen:
Quelle: Alipay UED