如何在 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(){ });
我的 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(){ });