当前位置: 首页 > 知识库问答 >
问题:

用not a not a函数表示promise的笑话错误

东郭阳德
2023-03-14

null

null

用console.log在脚本中测试它,这个函数会像预期的那样解决和拒绝。

square.js

const calculateSquare = (number) => {
    const promise = new Promise((resolve, reject) => {
        if (typeof number !== "number") {
            return reject(new Error("NaN"));
        }
        const square = number * number;
        resolve(square);
    });
    return promise;
};

// testing locally
calculateSquare(3).then((value) => { console.log(value) });
calculateSquare("3").catch((err) => { console.log(err.message) });

exports = { calculateSquare }

但是当我尝试运行下面的jest测试时:

square.test.js

const { calculateSquare } = require("./square");

describe("test calculateSquare function", () => {
    test("2 squared is 4", () => {
        return expect(calculateSquare(2)).resolves.toEqual(4);
    });

    test("'2' throws exception", () => {
        return expect(calculateSquare("2")).rejects.toMatch("NaN");
    });
});

我的测试失败,出现以下错误:

TypeError:calculateSquare不是函数

你能帮我理解为什么当它是“不是函数”的时候,以及写这些测试的正确方式是什么吗?

提前感谢你的帮助

共有1个答案

公孙锋
2023-03-14

看来您需要在 执行以下操作

module.exports = { calculateSquare }
 类似资料:
  • 定义 函数示引用对话框。 图片展示 代码演示 // 页面引用DialogLayout 注意DialogLayout的父级最好不要出现滚动条,以免定位不准确 import jimu from 'pile' const DialogLayout = jimu.Dialog.DialogLayout // 引入以后就可以在全局下调用这三种弹窗了 window.alertDialog({ msg

  • 如何在玩笑中清除模拟函数中的间谍?如果原始函数不是的话,工作得非常好。如何正确清除中的所有间谍?这个问题可能是如何在单个测试基础上更改模拟实现[Jestjs]的重复,尽管我的问题描述了一个不涉及多个模块的更简单的场景。

  • 我试图使用ESLint linter与Jest测试框架。 Jest测试使用一些全局变量运行,比如,我需要告诉linter关于它的信息;但棘手的是目录结构,Jest将测试与源代码一起嵌入文件夹中,因此目录结构类似于: 通常,我会将所有测试放在一个目录下,我可以在那里添加一个文件来添加全局变量。。。但是我当然不想在每一个目录中添加文件。 目前,我刚刚将测试全局变量添加到了global文件中,但由于这意

  • 问题内容: 我正在尝试为一个简单的React组件编写一个简单的测试,并且我想使用Jest来确认我用酶模拟点击时已调用了一个函数。根据Jest文档,我应该能够使用它:spyOn。 但是,当我尝试此操作时,我不断得到暗示我的间谍未定义的信息。我的代码如下所示: 在我的测试文件中: 有人了解我在做什么错吗? 问题答案: 嗨,伙计,我知道我来晚了,但是除了您的方式之外,您几乎已经完成,没有任何改变。当您使

  • 表示函数 1. 广义损失函数 基于我们对监督学习的理解可知学习步骤: $(1)$选择问题的表示形式, $(2)$选择损失函数, $(3)$最小化损失函数。 让我们考虑一个稍微通用一点的监督学习公式。在我们已经考虑过的监督学习设置中,我们输入数据$x \in \mathbb{R}^{n}$和目标$y$来自空间$\mathcal{Y}$。在线性回归中,相应的$y \in \mathbb{R}$,即$\

  • 在以下代码中: 在Promise api中使用(在中)和使用