2017-06-01 3 views
0

Nach der Jest Dokumentation zu lesen, wenn es erwähnt wird, dass eine einzelne Funktion von einer getesteten Datei exportieren sie das folgende Beispiel zeigen:module.exports mehr Funktionen in Jest Testen

function sum(a, b) { 
    return a + b; 
} 
module.exports = sum; 

Nun, wenn ich mehr spezifisches habe Funktionen ich möchte auf meine getestet Datei, wie diese exportieren:

function sum(a, b) { 
    return a + b; 
} 
function multiply(a, b) { 
    return a * b; 
} 
function subtract(a, b) { 
    return a - b; 
} 
module.exports = sum; 
module.exports = multiply; 

die multiply Funktion die einzige ist, exportiert. Wie kann ich diese Funktion exportieren lassen? Oder nur ein Teil meiner Datei?

Antwort

0

Zuerst in Ihrem Beispiel alles, was Sie da tun, ist zwingende das exports Objekt mit einer Funktion (die völlig in Ordnung ist)

Die exports und module.exports sind ein o bject und sind eigentlich das gleiche Objekt (dh module.exports === exports // true)

zu tun, was Sie möchten, können Sie dies ein paar Möglichkeiten:

exports.sum = sum 
exports.multiply = multiply 

oder

module.exports = { sum: sum, multiply: multiply } // etc 

oder

module.exports.sum = sum 
module.exports.multiply = multiply 
+0

Vielen Dank! Das half wirklich zu verstehen, was vor sich geht. Übrigens, verlangt Jest von mir, dass ich jederzeit etwas exportiere, oder kann ich eine ganze Datei auf einmal benötigen? – gespinha

+1

Dies ist nicht Jest-spezifisch, sondern spezifisch für node.js. Wenn du es nicht "exportierst", ist es vom Rest deines Programms "versteckt" und es gibt keine Möglichkeit, es zu erreichen. – sparrow

1

Sie können etwas tun:

module.exports = {}; 
module.exports.sum = function sum(a, b) { 
    return a + b; 
} 
module.exports.multiply = function multiply(a, b) { 
    return a * b; 
} 
module.exports.subtract = function subtract(a, b) { 
    return a - b; 
} 

End Sie es wie folgt verwendet werden:

var MyMathModule = require('./my_math_module'); 
MyMathModule.sum(a, b); 
MyMathModule.multiply(a, b); 
MyMathModule.subtract(a, b); 
Verwandte Themen