Ela*_*lad 5 javascript unit-testing node.js jasmine
我正在构建一个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");
});
Run Code Online (Sandbox Code Playgroud)
而即时消息“错误:实际不是函数”,没有其他详细信息。
Actual什么Logger.getLogsBetweenDates函数严重抛出错误,并且测试始终失败。我究竟做错了什么?那是什么实际值?
顾名思义,Actual是包含测试功能的实际结果的变量。您测试的函数实际上返回了什么。
然后,茉莉花将这个Actual价值与您的expect价值进行比较。当您在此处看到源代码时,更容易理解。
它在代码中发生Logger.getLogsBetweenDates是因为抛出错误,但errorMsg没有结果;因此,Actual是undefined,并且 expect函数将“ an” 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");
});
Run Code Online (Sandbox Code Playgroud)
如图所示这里。
| 归档时间: |
|
| 查看次数: |
2753 次 |
| 最近记录: |