2017-06-01 90 views
0

閱讀玩笑文檔後,當它提到,從他們表現出以下示例的測試文件導出一個單一的功能:現在module.exports多種功能測試

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

,如果我有多個具體功能我想在我的測試文件導出,這樣的:

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; 

multiply功能是用於出口的唯一的一個。我怎樣才能讓這些功能導出?或者只有我的文件的一部分?

回答

0

首先,在你的榜樣,你正在做的有覆蓋exports對象與一個函數(這是完全好的)

exportsmodule.exports是一個o bject和實際上是相同的對象(即module.exports === exports // true

,做你想做,你可以這樣做一對夫婦的方式是什麼:

exports.sum = sum 
exports.multiply = multiply 

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

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

謝謝!這真的有助於理解正在發生的事情。順便說一下,Jest是否要求我隨時導出某些內容,或者我可以同時要求整個文件? – gespinha

+1

這不是Jest特定的,它的node.js是特定的。如果你不'出口'它,它是從你的程序的其餘部分「隱藏」,並沒有辦法去。 – sparrow

1

你可以做這樣的事情:

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; 
} 

末你使用這樣的:

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