首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >茉莉花不会在函数上创建间谍

茉莉花不会在函数上创建间谍
EN

Stack Overflow用户
提问于 2014-11-03 10:35:18
回答 1查看 482关注 0票数 0

我有以下测试:(简化)

代码语言:javascript
复制
var request = require('request');
var routes = require('../routes.js');

describe('routes', function() {
  var req, res;

  beforeEach(function(){
    req = { headers: {}, url: 'http://127.0.0.1', params: {} };
    res = {
      sendFile: function() { return '' },
      render: function() { return '' },
      json: function() { return {} }
    };

    jasmine.createSpy(request, 'get')
  });

  it('should render static page', function() {
    routes.show(req, res);
    expect(request.get).toHaveBeenCalled();
  })
});

和routes.js内容:

代码语言:javascript
复制
module.exports = {
  show: function(req, res) {
    request.get(apiUrl('v1/users/' + req.params.name), apiErrorsHandler(function(body) {
      res.render('users/show.jade', body);
    }, function() {
      res.json({});
    }));
  }
}

如果重要的话,我正在使用gulp-jasmine,但问题还是会发生,即使我使用jasmine-node

每次运行测试时,我都会收到以下错误:

代码语言:javascript
复制
Error: Expected a spy, but got Function.

在线:

代码语言:javascript
复制
expect(request.get).toHaveBeenCalled();

你知道为什么会这样吗?

我尝试了以下解决方案:Expected a spy, but got Function,但没有成功,因为.get直接附加到request,所以引用是undefined

EN

回答 1

Stack Overflow用户

发布于 2015-03-16 15:19:33

jasmine.createSpy不是那样工作的。

您想要的是创建一个间谍并将其分配给请求对象的get属性。

代码语言:javascript
复制
req = { headers: {}, url: 'http://127.0.0.1', params: {}, get: jasmine.createSpy('reqGetSpy')};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26712365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档