{ const erro-6ren">
gpt4 book ai didi

javascript - Jasmine toThrowError 失败,消息 "Error: Actual is not a function"

转载 作者:搜寻专家 更新时间:2023-10-31 22:42:51 24 4
gpt4 key购买 nike

我正在构建 Jasmine 规范并编写 toThrowError 测试。

 it("Should give time travel error", () => {
const errorMsg = Logger.getLogsBetweenDates( {
fromDate : new Date("2017-01-06"),
toDate : new Date("2017-01-05")});

expect(errorMsg).toThrowError("Time travel error: fromDate must be befor toDate");
});

我得到“错误:实际不是一个函数”,没有额外的细节。

  • Actual 是什么?
  • Logger.getLogsBetweenDates 函数会迅速抛出错误,测试总是失败。我做错了什么?

最佳答案

What is that Actual?

顾名思义,Actual 是包含测试函数的实际结果的变量。您测试的函数实际返回的是什么。

然后,Jasmine 获取该 Actual 值并将其与您的 expect 值进行比较。看源码更容易理解here .

它发生在代码中,因为 Logger.getLogsBetweenDates 抛出错误,而 errorMsg 没有结果;所以 Actualundefinedexpect 函数将 undefined 与错误消息进行比较。

what am i doing wrong?

您需要在 expect 函数的内部调用测试函数,如下所示:

it("Should give time travel error", () => {    
expect(() => {
Logger.getLogsBetweenDates( {
fromDate : new Date("2017-01-06"),
toDate : new Date("2017-01-05")})
}).toThrowError("Time travel error: fromDate must be befor toDate");
});

如图here .

关于javascript - Jasmine toThrowError 失败,消息 "Error: Actual is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48322137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com