【问题标题】:How to test if else conditions in jest node.js如何在 jest node.js 中测试 if else 条件
【发布时间】: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 条件编写测试用例。谁能帮帮我。
【问题讨论】:
标签:
javascript
node.js
jestjs
【解决方案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
}