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不是函数
你能帮我理解为什么当它是“不是函数”的时候,以及写这些测试的正确方式是什么吗?
提前感谢你的帮助
看来您需要在
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中使用(在中)和使用