Javascript 开玩笑的错误不是承诺的函数

Javascript 开玩笑的错误不是承诺的函数,javascript,jestjs,Javascript,Jestjs,我正试图写一篇关于承诺的笑话 calculateSquare()返回一个承诺 在使用console.log的脚本中进行测试时,此函数会按预期进行解析和拒绝 square.js const calculateSquare=(数字)=>{ 持续承诺=新承诺((解决、拒绝)=>{ if(编号类型!=“编号”){ 返回拒绝(新错误(“NaN”); } 常数平方=数字*数字; 解析(正方形); }); 回报承诺; }; //本地测试 calculateSquare(3).then((值)=>{consol

我正试图写一篇关于承诺的笑话

calculateSquare()返回一个承诺

在使用console.log的脚本中进行测试时,此函数会按预期进行解析和拒绝

square.js

const calculateSquare=(数字)=>{
持续承诺=新承诺((解决、拒绝)=>{
if(编号类型!=“编号”){
返回拒绝(新错误(“NaN”);
}
常数平方=数字*数字;
解析(正方形);
});
回报承诺;
};
//本地测试
calculateSquare(3).then((值)=>{console.log(值)});
calculateSquare(“3”).catch((err)=>{console.log(err.message)});
导出={calculateSquare}
但当我尝试运行下面的jest测试时:

square.test.js

const{calculateSquare}=require(“./square”);
描述(“测试计算方形函数”,()=>{
测试(“2的平方等于4”,()=>{
返回期望值(计算平方(2))。解析为相等(4);
});
测试(“'2'引发异常”,()=>{
返回期望值(calculateSquare(“2”))。拒绝。匹配(“NaN”);
});
});
我的测试失败,出现以下错误:

TypeError:calculateSquare不是函数

你能帮我理解为什么这不是一个函数吗?写这些测试的正确方法是什么


提前感谢您的帮助

看起来您需要在
square.js中执行以下操作

module.exports = { calculateSquare }