как заглушить функцию, которая возвращает объект в QUnit?

У меня есть следующие строки в моем приложении SAPUI5

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

awardDate — это средство выбора даты, в которое пользователь вводит дату и возвращает объект даты javascript. Это фрагмент моего теста для проверки этого элемента.

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

В моем qunit я получаю сообщение об ошибке, говорящее о том, что объект не поддерживает свойство или метод getDateValue. Я не уверен, как я должен заглушить эту функцию, когда она возвращает объект. Другие тесты, которые у меня есть, делают это таким образом

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

где я получаю пустую строку. поэтому моя попытка сделать это с помощью средства выбора даты

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

но это не работает. Я все еще получаю ту же ошибку. Кто-нибудь делал это раньше?

изменить/обновить: мне удалось решить часть проблемы, выполнив следующие действия.

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

Теперь у меня проблема с той же ошибкой, но для getMonth(), которая возвращает строку. Все остальные переменные являются глобальными, но dateVal создается на месте, когда пользователь обновляет средство выбора даты. Любые идеи о том, как поступить в этом случае?


person polaris    schedule 14.06.2017    source источник


Ответы (2)


Попробуйте с этим кодом:

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

Я смог понять, как решить эту проблему. Мне пришлось сделать тип объекта определенным объектом Date, подобным этому

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