2016-07-28 8 views
0

Ich habe a lot of tutorials gefunden, um den ES2015-Code zu testen, indem ich ihn (mit Babel) auf ES5 transpiliere und dann den ES5-Code teste. Aber gibt es ein Testframework, das Code mit nativen ES2015-Features (wie Standardargumenten) testen kann, ohne es zu transponieren?Kann ich ES2015-Code ('ES6') testen, ohne ihn zu transponieren?

Es scheint ziemlich merkwürdig, ein ganzes transpiler Setup nur für Testabdeckung zu installieren. Ich frage mich, ob es eine native Möglichkeit gibt, Assertionen auf ES2015-Code zu machen.

+1

Es gibt einen Weg. Testen Sie es in einem Browser, der die in der App verwendeten ES6-Funktionen unterstützt. Was für ES6-Module ziemlich schwierig ist, weil sie nicht von Browsern unterstützt werden. Bitte verbessern Sie die Frage, indem Sie die verwendeten Testwerkzeuge angeben. Einige von ihnen (z. B. Karma) bieten nahtlose Setups für die Übertragung an. – estus

+1

"* ein ganzer Tranpiler-Setup * nur * für die Testabdeckung *" - Wenn Sie für den eigentlichen Build keinen Transpiler benötigen, brauchen Sie ihn auch nicht für die Testabdeckung. Wenn Sie es sowieso für den Build benötigen, benötigen Sie es für beide. – Bergi

Antwort

2

Dies ist keine Frage des Test-Framework, sondern der Javascript-Umgebung. Wenn Ihre Engine die von Ihren Tests verwendeten ES6-Funktionen nativ unterstützt, können Sie das Framework und Ihre Tests nativ ausführen. Knoten 6 macht schon eine gute Arbeit, there's only a few things missing (am wichtigsten Module). Installiere einfach keinen Transpiler und es funktioniert trotzdem.

Natürlich gibt es ein paar Features, die noch nicht unterstützt werden, und es gibt auch viele Umgebungen, die im Allgemeinen keine ES6-Unterstützung haben, aber alle Test-Frameworks wollen sie unterstützen (oder unterstützen müssen) in der Vergangenheit). Deshalb ist der Transpiler als Option (noch) in die gesamte Werkzeugkette integriert - auch wenn Sie diese heutzutage nicht mehr unbedingt verwenden müssen.