2017-03-17 9 views
0

Ich schreibe Tests für meine js Compiler und wenn ich einen String eingeben, werden mehrere Zeilen abgerufen. Was abgerufen wird, ist, was ich abrufen möchte, aber mein Test schlägt fehl, weil ich nicht weiß, wie man schreibt, was für Scherz erwartet wird. DieseJest Erwarte mehrere Zeilen

ist, wie ich den Test nennen:

testRequireImport(
    'import { b, a } from \'@sugar/merge/*\';', 
    '!EXPECTED', 
    babelOptions 
); 

Dies ist die Reaktion in der Konsole:

expect(received).toBe(expected) 

Expected value to be (using ===): 
    "import '../../top/merge/FileInTop.js';,import '../../mid/merge/FileInMid.js';,import '../../mid/merge/Second.js';,import './FileInBot.js';" 
Received: 
    "import '../../top/merge/FileInTop.js'; 
import '../../mid/merge/FileInMid.js'; 
import '../../mid/merge/Second.js'; 
import './FileInBot.js';" 

Difference: 

- Expected 
+ Received 


-import '../../top/merge/FileInTop.js';,import '../../mid/merge/FileInMid.js';,import '../../mid/merge/Second.js';,import './FileInBot.js'; 
+import '../../top/merge/FileInTop.js'; 
+import '../../mid/merge/FileInMid.js'; 
+import '../../mid/merge/Second.js'; 
+import './FileInBot.js'; 

Kann mir jemand helfen, mit dem Schreiben, was erwartet wird?

+0

Sie bricht nicht das, was Sie tatsächlich – Aron

+0

@Aron Ich möchte meinen Test erfolgreich passieren soll. Was ich erhalte, ist richtig, aber ich möchte wissen, wie man das 'erwartete' schreibt, um dem empfangenen gleich zu sein. –

Antwort

1

Ihr erwartet hat Kommas, wo neue Zeilen sein sollten, und Ihr empfangen hat neue Zeilen anstelle von Kommas.

So Ihre erwartete Spiel machen mit der Linie

expect(received).toBe(expected.replace(',', '\n'));

+0

Danke! Der Code, den du geschickt hast, hat nicht funktioniert, weil 'replace' nur das erste Komma ersetzt, aber ich habe' split' und 'join' verwendet, um das zu erreichen –