Ich arbeite an einem React-Native-Projekt mit TypeScript. Um meine Komponententests zu schreiben, möchte ich die babel-plugin-rewire verwenden, um meine Modulimporte nachzuahmen. TypeScript fügt jedoch am Ende der Importe beim Konvertieren von ES6 nach ES5 ein _1
Suffix hinzu, was meinen Testcode unterbricht.Verwenden von Rewire mit TypeScript
Beachten Sie Folgendes:
import Test from 'test-file';
dies durch Typoskript umgewandelt werden könnten:
var test_file_1 = require('test-file');
Um die Test-Klasse zu verspotten die Rewire Plugin würde ich schreiben müssen:
ComponentToTest.__Rewire__('Test', TestMock);
aber da der Import umbenannt wurde, wird dies brechen.
Obwohl dies by design ist, würde ich gerne wissen, ob es Problemumgehungen gibt.
Danke.
Wie Sie getestet Modul in der Spezifikation zu importieren habe es geschafft, Datei (dh. "import {SomeClass, __Rewire__} aus '../ src/SomeClass';')? Wenn ich versuche, den Test auszuführen, gibt der Compiler den folgenden Fehler aus "SomeClass" hat kein exportiertes Mitglied "__Rewire __". P.S. Spezifikationsdateien werden auch in TypeScript geschrieben. –