Heim >Web-Frontend >js-Tutorial >Jest zu Explainer.js hinzufügen
Diese Woche sollten wir Test zu unserem CLI-Tool hinzufügen. Bisher das Frustrierendste, was ich tun konnte.
Ich bin ein großer Befürworter von TDD (Test Driven Development). Fast jeder Stückcode sollte getestet werden. Während meiner Kooperation verbrachte ich mehr als die Hälfte der Zeit damit, Tests für meine PR zu schreiben. Ich glaube, diese Erfahrung hat mir wirklich geholfen, die Notwendigkeit von Tests zu verstehen. Ich war überrascht zu sehen, wie ähnlich die Test-Frameworks in JS und Ruby sind. Ich habe Jest verwendet, das RSpec sehr ähnlich ist, das ich während meiner Zusammenarbeit verwendet habe. Um die http-Anfrage zu simulieren, habe ich Nock verwendet, ähnlich wie etwas namens VCR.
Das Hauptproblem, mit dem ich konfrontiert war, war, dass ich ESM anstelle von CommonJS verwendet habe. Was mein Leben viel schwieriger machte. Das erste Problem war, dass jest.mock nicht funktionierte. Nach einigen Recherchen wurde mir klar, dass die Art und Weise, sich zu verspotten, in ESM anders ist. Leider konnte ich es trotz Befolgung der Dokumentation nicht zum Laufen bringen. Also musste ich jest.spyOn machen. Das zweite Problem, mit dem ich konfrontiert war, war, dass Execa in child_process die Datei index.test.js ausführt, obwohl sie keine Auswirkungen auf den Abdeckungsbericht hat. Also musste ich jest.spyOn verwenden, um den Test neu zu schreiben. Ich musste auch index.js umgestalten, damit die Flags, die ich an Scherz übergebe, nicht übernommen werden. Ein anderes kleineres Problem, mit dem ich konfrontiert war, war die Verwendung von node --experimental-vm-modules --no-warnings node_modules/jest/bin/jest.js -c jest.config.mjs anstelle von jest -c jest.config.mjs, weil ich es war mit ESM. Ich musste auch Mock-FS verwenden, um das Dateisystem zu replizieren, um FilepathResolver.test.js zu testen, da einfaches jest.spyOn es nicht gründlich genug getestet hat. Ich war überrascht, wie viele Hindernisse allein durch die Verwendung von ESM verursacht wurden, und das spiegelt einfach wider, was für ein Durcheinander JS ist.
Nach vielen Versuchen habe ich eine ziemlich gute Abdeckung erhalten.
Das obige ist der detaillierte Inhalt vonJest zu Explainer.js hinzufügen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!