茉莉花间谍

节律

我想模拟猫鼬模型的save()函数。我要测试的功能在名为user.js的文件中如下所示:

var User = import('User.js')

post: function(req, res) {
  var user = new User({
      password    : req.body.password,
      email       : req.body.email,
  });
  user.save( function(err) {
    if (err) {
      ....
    } else {
      ....
    }
  });

我试图在另一个名为user_spec.js的文件中编写如下所示的测试:

var Hander = require('user.js')

it('works properly', function() {
  spyOn(User, 'save').andReturn(null)
  Handler.post(req, res);
});

但这给了我错误:

save() method does not exist

我做了更多的挖掘工作,看起来User模型本身没有实例的save()方法。这意味着我必须模拟User的构造函数,但是我对此有很多麻烦。其他帖子引用的声明如下:

spyOn(window, User)

来解决这个问题,但是在NodeJS中,全局变量(此处等效于窗口)没有User,因为我导入的是变量。是否可以模拟构造函数以通过模拟的save()给我一些东西?我还看了一个名为rewire的npm模块,但我希望可以在不模拟和替换处理程序中整个用户模块的情况下完成此任务。

节律

这不能解决模拟局部变量的问题,但是可以解决单元测试新文档创建的问题。

创建新文档时,最好使用Model.create()。可以有效地模拟它,并且代码更少。处理和测试它的正确方法是:

var User = import('User.js')

post: function(req, res) {
  User.create({
      password    : req.body.password,
      email       : req.body.email,
  }, function(err) {
    if (err) {
      ....
    } else {
      ....
    }
  });
});

对应测试:

var Hander = require('user.js')

it('works properly', function() {
  spyOn(User, 'create').andReturn(null)
  Handler.post(req, res);
});

希望这种解决方法可以帮助其他人对茉莉和猫鼬单元测试感到沮丧。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

茉莉花间谍在jquery

来自分类Dev

茉莉花间谍NodeJS

来自分类Dev

茉莉花间谍命名

来自分类Dev

茉莉花间谍法

来自分类Dev

茉莉花间谍无法正常工作

来自分类Dev

茉莉花间谍“ expect(xxx).notToHaveBeenCalled()

来自分类Dev

茉莉花间谍无法正常工作

来自分类Dev

AngularJS茉莉花间谍提供了工厂和调用权

来自分类Dev

茉莉花我该如何设定间谍的回应

来自分类Dev

为什么这个茉莉花间谍会导致错误?

来自分类Dev

如何更改茉莉花间谍的返回值?

来自分类Dev

茉莉花预期的间谍myLinks被称为错误

来自分类Dev

茉莉花间谍没有被称为

来自分类Dev

使用茉莉花间谍程序对服务方法调用进行间谍程序

来自分类Dev

测试茉莉花间谍事件是否未在元素上触发

来自分类Dev

茉莉花测试失败:预期已调用间谍openQuickSubtypes。上下文菜单测试cas

来自分类Dev

角度集成测试-茉莉花间谍-无法模拟返回Observable的服务方法

来自分类Dev

茉莉花间谍有望与“ Object(...)”一起调用

来自分类Dev

茉莉花和通天塔重探间谍的一种参考方法

来自分类Dev

茉莉花:此范围

来自分类Dev

茉莉花测试,addEventListener

来自分类Dev

Angular +茉莉花测试

来自分类Dev

茉莉花链测试

来自分类Dev

尝试/赶上茉莉花

来自分类Dev

茉莉花装置与iframe

来自分类Dev

茉莉花测试失败

来自分类Dev

茉莉花测试-优先

来自分类Dev

模拟茉莉花的承诺

来自分类Dev

茉莉花可变范围