Sails.js:从单元测试中调用控制器方法

时间:2016-01-22 17:40:54

标签: javascript node.js unit-testing sails.js

我会请求一些帮助。我正在尝试制作一种可以调用单元测试和方法的方法。在触发特定路线时调用。 createFromRoute()工作得很好。如果我直接调用create(),我会收到错误。

用户控制器

module.exports = {

  /**
   * UserController.createFromRoute()
   */
  createFromRoute: function(req, res, next) {
    console.log('>>>', 'Routing to UserController.createFromRoute()');

    // Calling create method
    this.create(req.params.all())
      .then(function(user) {
        res.json(user);
      })
      .fail(res.badRequest);
  },

  create: function(data) {
    console.log('>>>', 'Entering create() function.');
    return User.create(data);
  },

};

样本测试

var UserController = require('../../api/controllers/UserController.js');

describe('testing', function() {
  data = {};
  UserController.create(data);
});

错误

>>> Entering create() function.
path/api/controllers/UserController.js:28
  return User.create(data);
           ^
ReferenceError: User is not defined

1 个答案:

答案 0 :(得分:0)

只有在您取消应用后,全局变量template <typename T> class DoublyLinkedList // <<<<< No <T> { // ... }; 才可用。你有launched sails in a bootstrap file吗?

User
  

由于您的模型在升降机上转换为水线收集,因此   在尝试测试之前提升你的sailsApp是必要的(这个   同样适用于控制器和应用程序的其他部分,所以   一定要先调用这个文件。)