如何在 QUnit 中存根 returns 一个对象的函数?

how to stub a function that returns an object in QUnit?

我的 SAPUI5 应用程序中有以下行

var dateVal = controls.awardDate.getDateValue();
var month = dateVal.getMonth();

awardDate 是用户输入日期的日期选择器和 returns 一个 javascript 日期对象。这是我的 qunit 的一个片段,用于测试这个元素。

awardDate: {
  getValue: getInvalidValue,
  getValueState: getValueStateWarning,
  setValue: setValue,
  getDatevalue: getDateValue
 }

在我的 qunit 中,我收到一条错误消息,指出该对象不支持 属性 或方法 'getDateValue'。当它 returns 一个对象时,我不确定我应该如何存根这个函数。我用这种方式进行的其他测试

var getValue = sinon.stub().returns('');

我得到一个空字符串。 所以我尝试用日期选择器来做是

var getDateValue = sinon.stub().returns(new Date());

但这不起作用。我仍然遇到同样的错误。有人做过吗?

edit/update: 我通过执行以下操作解决了部分问题

var getValueDate = sinon.stub().returns(Object, function(){ });

现在我遇到的问题是同样的错误,但是 getMonth() returns 是一个字符串。所有其他变量都是全局变量,但 dateVal 是在用户更新日期选择器时当场创建的。关于如何进行这件事有什么想法吗?

尝试使用此代码:

var getValueDate = sinon.stub(controls.awardDate, 'getDateValue');
var month  = {
    getMonth: sinon.stub()
}
getValueDate.returns([month]);

我想出了解决这个问题的方法。我必须像这样使对象类型成为特定的日期对象

 var getValueDate = sinon.stub().returns(new Date()), function(){ });