我正在构建一个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
函数严重抛出错误,测试总是失败。我做错了什么?答案 0 :(得分:3)
那是什么?
顾名思义,Actual
是包含测试函数实际结果的变量。你测试的功能实际上是什么回来了。
然后,Jasmine获取Actual
值并将其与您的expect
值进行比较。
当您看到源代码here时,您会更容易理解。
它发生在代码中,因为Logger.getLogsBetweenDates
抛出错误,errorMsg
没有结果;因此Actual
为undefined
,expect
函数将undefined
与错误消息进行比较。
我做错了什么?
您需要调用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。