gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:56:17 25 4
gpt4 key购买 nike

考虑这个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com