亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JS 模塊導出不適用于 Jest

JS 模塊導出不適用于 Jest

搖曳的薔薇 2022-12-02 15:57:51
我正在嘗試設置Jest環境Node.js。以下是在名為 的文件中定義的函數controllers/a.js:function sum(a, b) {    return a + b;}module.exports = sum;這是從tests.js文件中訪問的:const sum = require('../controllers/a');test('adds 1 + 2 to equal 3', () => {    expect(sum(1, 2)).toBe(3);});這很好用: PASS  tests/tests.js  √ adds 1 + 2 to equal 3 (5 ms)但是,如果我修改a.js如下:function sum(a, b) {    return a + b;}exports.sum = sum;然后我得到TypeError: FAIL  tests/tests.js  × adds 1 + 2 to equal 3 (3 ms)  ● adds 1 + 2 to equal 3    TypeError: sum is not a function      2 |      3 | test('adds 1 + 2 to equal 3', () => {    > 4 |     expect(sum(1, 2)).toBe(3);        |            ^      5 | });嘗試了以下幾種導出方式,均以TypeError上述方式失敗:module.exports.sum = sum;module.exports = { sum: sum };exports = sum;exports = { sum: sum };我需要導出多個函數以在Jest. Jest如果沒有module.exports按預期識別,我該怎么做?
查看完整描述

2 回答

?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

你有沒有嘗試過:

function sum() { ... }
exports.sum = sum;

在你的測試中:

const { sum } = require('../controllers/a');

因為當您在測試中導入文件時,您需要查看 require() 返回的對象內部以找到正確的函數(此處為 sum)。


查看完整回答
反對 回復 2022-12-02
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

如果你這樣做exports.sum = sum;

您需要像這樣導入它:const {sum} = require('../controllers/a');


查看完整回答
反對 回復 2022-12-02
  • 2 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號