小编Pau*_*aul的帖子

你能在 Jasmine 中结合 toHaveBeenCalledWith 和 toHaveBeenCalledTimes 吗?

我在 Jasmine 单元测试中使用这两个单独的断言。

expect(spyFunction).toHaveBeenCalledWith(expectedArgument);
expect(spyFunction).toHaveBeenCalledTimes(expectedCount);
Run Code Online (Sandbox Code Playgroud)

如果我理解正确的话,这些将证实以下内容。

  • expectedArgument该函数至少被调用一次,并且
  • 该函数称为总共调用expectedCount次数。

我想要做的是确认该函数的调用时间expectedArgument准确expectedCount。换句话说,我只想计算参数匹配的调用次数。

我意识到我可以用假的来自己计数......

var callCount = 0;
spyOn(myInstance, 'myFunction').and.callFake(arg => {
  if (arg === expectedArgument) {
    callCount++;
  }
});

...

expect(callCount).toEqual(expectedCount);
Run Code Online (Sandbox Code Playgroud)

...但这不具备以前语法的可读性,感觉像是重新发明轮子。我没有经常使用茉莉花,所以我想知道我是否错过了一些东西。

有没有办法使用内置的 Jasmine 匹配器进行断言?或者,是否有另一种方法来获得类似的可读语法?

javascript jasmine

6
推荐指数
1
解决办法
1457
查看次数

标签 统计

jasmine ×1

javascript ×1