如何在 jest node.js 中测试 if else 条件
Posted
技术标签:
【中文标题】如何在 jest node.js 中测试 if else 条件【英文标题】:How to test if else conditions in jest node.js 【发布时间】:2021-08-07 15:54:27 【问题描述】:我写了一个函数,其中有一个 if else 条件。我想测试 if else 条件。 所以我的功能在下面
function dateFunction(date)
today = new Date() // it is taking todays date.
dateToBeChecked = date // date received in function parameter
if (dateToBeChecked < today)
return false
else
return true
所以我想为 if else 条件编写测试用例。谁能帮帮我。
【问题讨论】:
在您的测试中提供大于today
的date
。
【参考方案1】:
您可以使用 toBeTruthy() 和 toBeFalsy() 方法测试布尔值。
test('Expect true from return value of dateFunction', () =>
expect(dateFunction(new Date("05/24/2021"))).toBeTruthy();
expect(dateFunction(new Date("05/24/2021"))).not.toBeFalsy();
);
【讨论】:
你只测试一个案例【参考方案2】:当涉及到日期时,最好将当前日期作为函数参数注入并给它一个默认值。这样您就可以保证您的测试在未来不会失败。
function dateFunction(date, today = new Date)
if (dateToBeChecked < today)
return false
else
return true
test('return false if it\'s a past date', () =>
expect(dateFunction(0, 1)).toBe(false)
)
test('return true if it\'s a future date', () =>
expect(dateFunction(1, 0)).toBe(true)
)
【讨论】:
【参考方案3】:你可以这样使用else if
。
if (true)
// My code here
else if (false)
// My code heee
else
// My code here
【讨论】:
以上是关于如何在 jest node.js 中测试 if else 条件的主要内容,如果未能解决你的问题,请参考以下文章
Node.Js - Jest 测试(令牌问题得到 401“未授权”)
Node.js:Jest + redis.quit() 但打开句柄警告仍然存在
Node.js events.js: 163 throw er;使用标志 --runInBand 执行 Jest 时