How to have different return values for multiple calls on a Jasmine spy(如何为 Jasmine 间谍的多个调用提供不同的返回值)
问题描述
假设我在监视这样的方法:
Say I'm spying on a method like this:
spyOn(util, "foo").andReturn(true);
被测函数多次调用util.foo
.
是否可以让间谍在第一次调用时返回 true
,但第二次返回 false
?还是有其他方法可以解决这个问题?
Is it possible to have the spy return true
the first time it's called, but return false
the second time? Or is there a different way to go about this?
推荐答案
你可以使用spy.and.returnValues(如 Jasmine 2.4).
You can use spy.and.returnValues (as Jasmine 2.4).
例如
describe("A spy, when configured to fake a series of return values", function() {
beforeEach(function() {
spyOn(util, "foo").and.returnValues(true, false);
});
it("when called multiple times returns the requested values in order", function() {
expect(util.foo()).toBeTruthy();
expect(util.foo()).toBeFalsy();
expect(util.foo()).toBeUndefined();
});
});
有一点你必须注意,还有一个函数会类似地拼写returnValue
而没有s
,如果你使用它,jasmine不会警告你.
There is some thing you must be careful about, there is another function will similar spell returnValue
without s
, if you use that, jasmine will not warn you.
这篇关于如何为 Jasmine 间谍的多个调用提供不同的返回值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何为 Jasmine 间谍的多个调用提供不同的返回值


基础教程推荐
- npm start 错误与 create-react-app 2022-01-01
- 如何添加到目前为止的天数? 2022-01-01
- 即使用户允许,Gmail 也会隐藏外部电子邮件图片 2022-01-01
- 原生拖动事件后如何获取 mouseup 事件? 2022-01-01
- 检查 HTML5 拖放文件类型 2022-01-01
- Bootstrap 模态出现在背景下 2022-01-01
- fetch 是否支持原生多文件上传? 2022-01-01
- Fabric JS绘制具有活动形状的多边形 2022-01-01
- Bokeh Div文本对齐 2022-01-01
- 在 contenteditable 中精确拖放 2022-01-01