【问题标题】: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 条件编写测试用例。谁能帮帮我。

【问题讨论】:

  • 在您的测试中提供大于todaydate

标签: 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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-25
      • 1970-01-01
      • 2019-12-28
      • 1970-01-01
      • 2021-09-30
      • 2020-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多