【问题标题】:Jasmine have createSpy() return mock objectJasmine 有 createSpy() 返回模拟对象
【发布时间】:2015-02-25 04:06:06
【问题描述】:

我正在尝试模拟一个响应对象,它看起来像这样:

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

这将返回 jasmine 对象。我真的很想返回包含模拟函数的原始 res 变量。那可能吗?我主要是实现这个来对包含 res.status().send() 的函数进行单元测试,这被证明是很困难的。

【问题讨论】:

标签: javascript unit-testing express jasmine


【解决方案1】:

这里的答案实际上很快。调用 andReturn() 会给你茉莉花作为'this'。但是,如果您编写 andCallFake(),则该函数将模拟对象视为 this。解决方案如下:

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

【讨论】:

  • 问和回答。为您 +2 互联网。
  • 在 Jasmine 2.4 中它现在是 .and.callFake(function() {})
【解决方案2】:

这对我有用:

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

【讨论】:

    猜你喜欢
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    相关资源
    最近更新 更多