如何在 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 条件编写测试用例。谁能帮帮我。

【问题讨论】:

在您的测试中提供大于todaydate 【参考方案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 时

使用 Jest 进行测试时如何使用 `import.meta`

Travis CI Fail Jest测试超时原因

如何在Node,js中处理异常控制?