javascript - 使用一个 'it' 测试两个相同功能的期望

标签 javascript jasmine

我是 Jasmine 新手。我遇到过这个特殊问题,如下:- 假设我要测试的代码是:

myTestFunction: function () {
  if (this.field) {
    return true;
  }
  else
     return false;
}

测试用例:

it('myTestFunction', function () {
   this.obj.field = true;
   expect(obj.myTestFunction() ).toEqual(true);
   this.obj.field = false;
   expect(obj.myTestFunction() ).toEqual(false);
})

现在,如果我的第一个 expect 失败,则整个测试用例都会失败,并且我的其他 expect 甚至不会被考虑。有没有什么方法可以让一个期望失败,另一个可以正常工作,并且测试用例显示一个期望失败而另一个期望通过,而无需为 if 和 else 编写单独的测试用例? 谢谢您

最佳答案

每个it都应该是一个单独的案例。因此,如果您想分别测试 true 和 false 变体,则不能将它们放在同一个 it 中:

it('myTestFunction true', function () {
  this.obj.field = true;
  expect(obj.myTestFunction() ).toEqual(true);
})

it('myTestFunction false', function () {
  this.obj.field = false;
  expect(obj.myTestFunction() ).toEqual(false);
})

关于javascript - 使用一个 'it' 测试两个相同功能的期望,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48074580/

相关文章:

javascript - 使用 jQuery UI 选项卡重定向到另一个页面

javascript - 如何断言在我的 Jasmine 测试中调用了一个方法

json - Angular Protractor e2e 测试

javascript - 在 Express JS 中上传和调整图像大小时遇到​​问题

javascript - 在 Jasmine 中测试空对象失败

angularjs - 如何在 Jasmine 测试中触发window.onbeforeunload

javascript - 给定链接列表,如何使用 C# 或 Protractor 和 Selenium 单击并验证每个链接?

javascript - Change Detection 过程以及检查 OnPush 属性的确切时间

javascript - 为什么 jQuery 设置 jQuery 禁用属性仅适用于第一个单选输入?

javascript - 如何在一个 Action 完成后在React js中调度一个 Action ?