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 间谍的多个调用提供不同的返回值


基础教程推荐
- 在for循环中使用setTimeout 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 动态更新多个选择框 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 悬停时滑动输入并停留几秒钟 2022-01-01