Jasmine 有一个 spyOn
函数,但它似乎只有两个参数 - 对象和要调用的函数名称:
spyOn(foo, 'getBar').andReturn(745);
例如,如果我调用 foo.getBar()
我应该得到 745。
我只是想知道,如果我有一个单元测试想要模拟对 getBar
的两次不同调用,并使用两个不同的参数返回两个不同的结果,该怎么办?
例如假设我想模拟以下结果,我怎样才能实现以下结果?
getBar(1) = 700
getBar(2) = 500
最佳答案
您可以使用andCallFake
来完成此操作:
spyOn(foo, 'getBar').andCallFake(function(n) {
if (n === 1) {
return 700;
} else if (n === 2) {
return 500;
}
throw "Invalid input";
});
关于javascript - 是否可以指定 Jasmine 的 spy On() 中的某些参数返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17812916/