Жасмин имеет метод createSpy() return mock

Я пытаюсь макет объекта ответа, и он выглядит примерно так:

var res = {
  status: jasmine.createSpy().andReturn(this),
  send: jasmine.createSpy().andReturn(this)
}

Возвращает объект жасмина. Мне бы очень хотелось вернуть исходную переменную res, содержащую измененные функции. Это возможно? Я в основном реализую это для unit test функций, содержащих res.status(). Send(), что оказывается трудным.

Ответ 1

Ответ здесь довольно быстрый. Вызов andReturn() даст вам жасмин как 'this'. Но, если вы пишете andCallFake(), эта функция считает, что этот издеваемый объект является этим. Решение выглядит так:

status: jasmine.createSpy().andCallFake(function(msg) { return this });

Ответ 2

это работает для меня:

const res = {
  status: jasmine.createSpy('status').and.callFake(() => res),
  send: jasmine.createSpy('send').and.callFake(() => res),
};