Jasmine:基于方法参数的模拟方法响应

Jasmine: mock method response based on method's parameters

我的问题很简单。仅当某个值传递给该方法时,我才想模拟该方法。像这样:

spyOn(myObj, "getUser").and.withArgs('userA').and.returnValue(null);

如果使用值 'userA' 调用方法 getUser,该方法应该 return null。

Jasmine 有可能吗?我正在使用 Karma 和 jasmine-core": "^2.6.1jasmine-jquery": "^2.1.1"

尝试利用 callFake:

spyOn(myObj, 'getUser').and.callFake(arg => {
  if(arg === 'userA') {
    return null;
  } else {
    return 'hello'; // it is up to you what to return if it is not 'userA'
  }
});