unit-testing - 使用 mocha : can't find/api/services/myService 测试 sails.js

标签 unit-testing mocha.js sails.js

考虑这个 mocha 测试:

var Sails = require('sails');

describe("Foo Model creation:", function() {
  // create a variable to hold the instantiated sails server
  var app;

  // Global before hook
  before(function(done) {
    // Lift Sails and start the server
    Sails.lift({
      log: {
        level: 'error'
      }
    }, function(err, sails) {
      app = sails;
      done(err, sails);
    });
  });

  // Global after hook
  after(function(done) {
    app.lower(done);
  });

  describe("new foo", function() {
    var foo;
    before(function (cb) {
      var fooData = {
        name: "test foo to be removed after test"
      };

      Foo.create(fooData, function (err, newFoo)              
        if (err) return cb(err);
        foo = newFoo;
        cb();
      });
    });
    it("must show the name", function() {
      foo.must.have.property('name');
    });

    after(function (cb){
      foo.destroy(function (err) {
        cb(err);
      });
    });
  });
})

除了 Foo 模型依赖于 sails 服务,即/api/services 中定义的库代码之外,这将起作用。 sails 在此处升起时找不到这些服务。

有没有办法在 mocha 测试期间指示 Sails 也加载服务?

最佳答案

我遇到了类似的问题,事实上,Sails 应该加载服务、 Controller 等。

有一些调试工具可以帮助提升风 sails :

Sails.lift({ 日志: { 级别:'详细' }, 应用程序路径:'../', //显式加载除了策略之外的几乎所有内容 //loadHooks: ['moduleloader', 'userconfig', 'orm', 'http', 'controllers', 'services', 'request', 'responses', 'blueprints'] }

我还对 Mocha 进行了实时调试(尽管我不会在这里详细介绍)。

我通过调试和 verbose 的日志级别(如果 verbose 不能回答问题,你也可以尝试 silly )发现我正在加载 Sails来自错误的目录 - 测试目录。将 appPath 更改为“../”后,我可以从日志消息中得知它正在加载正确的内容,瞧,我的 sails.services.myService 对象现在就在那里!

希望对您有所帮助!

关于unit-testing - 使用 mocha : can't find/api/services/myService 测试 sails.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21883944/

相关文章:

javascript - 如何在单元测试环境中模拟 browserHistory?

javascript - 将 HTML 报告与 Mocha 测试框架结合使用

javascript - Waterline Sails JS 不起作用

node.js - 压入数组返回 Object 对象

unit-testing - 如何测试 observable 在 RxJava 中使用正确的调度程序?

c# - MassTransit 消费者测试已通过,但引发了令人困惑的错误

c# - 在 Visual Studio 2010 中进行单元测试 (c#)。我做错了什么?测试总是失败

php - 如何使用 PHPUnit 测试 Web 服务?

javascript - 在 Mocha 单元测试 Node.js 期间找不到环境变量

node.js - Sails V0.10-rc7 通过 Socket.IO 使用 REST 蓝图从数据库获取记录