Pau*_*aul 6 javascript jasmine
我在 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 匹配器进行断言?或者,是否有另一种方法来获得类似的可读语法?
您可以使用从间谍那里获取更详细的信息calls。您可以像这样查看每个调用及其参数:
expect(spyFunction.calls.count()).toBe(2)
expect(spyFunction.calls.argsFor(0)).toEqual(/* args for 1st call */)
expect(spyFunction.calls.argsFor(1)).toEqual(/* args for 2nd call */)
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅Jasmine 文档。
| 归档时间: |
|
| 查看次数: |
1457 次 |
| 最近记录: |