使用一个'它'测试两个期望相同的功能

时间:2018-01-03 09:28:39

标签: 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写单独的测试用例? 谢谢

1 个答案:

答案 0 :(得分:1)

每个it应该是一个单独的案例。因此,如果您想分别测试真假变体,则不能将它们放在同一个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);
})