Bei der Arbeit schreiben wir viele häufig wechselnde Geschäftslogiken in JS (Startup). Sogar zu viel. Und ich möchte das alles aus der alten Gewohnheit heraus testen, aber irgendwie schneller, damit die Tests den Govnokod nicht stören, wenn er benötigt wird, und die Struktur der Module nicht speziell für die Tests angepasst ist. Irgendwann kam der Gedanke, dass es auch irgendwie mit Hilfe eines einfachen Babel-Plug-Ins automatisiert werden könnte, so dass zunächst alle privaten Variablen und Methoden in einer Testumgebung herauskommen, aber in der Produktion nicht berührt würden. Es stellte sich als recht einfach und unterhaltsam heraus. So entstand Introscope , mit dem wir jetzt alles mehr oder weniger kompliziert testen.
Nachdem ich das Projekt übergeben hatte, war ich einige Monate lang abgelenkt, um den Einsatz und die Überwachung zu verbessern. Ich war ausgeruht, schätzte Habr, und als ich etwas erneut testen musste, war ich sofort begeistert von meinem eigenen Tool! Das passiert mir nicht oft. Genauer gesagt war es nie. Also, ich denke das Ding funktioniert. Ich hoffe, Sie sind auch nützlich.
Kurz gesagt, was kann es tun?
- Wickelt das gesamte Modul in eine Factory-Funktion ein, sodass Sie beim Testen so viele neue Module erstellen können, wie Sie benötigen. Dadurch entfällt die Notwendigkeit, das Entsperren durchzuführen.
- Da das Modul verpackt ist, weiß Tulza genau, welche Variablen das Modul importiert, und kann Moki nach Typ generieren. Dies funktioniert sehr gut für einen mehr oder weniger funktionalen Stil.
- Es ist in der Lage, Aufrufe und Argumente für Funktionen von externen Modulen zu protokollieren und alles in ein Protokoll zu schreiben, das dann für Snapshots wunderschön serialisiert wird (wenn Sie Jest verwenden, beginnt alles sofort).
- Killer-Funktion: Kann das Ergebnis des Aufrufs einer externen Funktion speichern und für weitere Tests verwenden. Dies ist sehr praktisch, wenn Sie Anfragen nach externen Diensten testen, mit denen wir mit unseren Händen in Moki gefahren sind.
- In Kombination mit Jest werden Tests durch Drücken einer U-Taste (ich mache keine Witze) aktualisiert, mit der Snapshots aktualisiert werden. Goldener Testansatz in seiner ganzen Pracht.
- Arbeitet seit fast einem Jahr in der Produktion.
Ergebend
Tests wurden von Personen geschrieben, die zuvor noch nicht einmal davon erfahren wollten, da Sie nur die Funktion mit den erforderlichen Parametern aufrufen und das Protokoll der Ereignisse in dieser Funktion mit einer Taste speichern müssen. Ich wollte nur etwas anderes testen ...
Link: Introscope (es gibt auch GIF-Screencasts!). Ich würde mich sehr über konstruktive Kritik und Links dazu freuen, aber viel besser gemacht: D.
