我有一个模型,可以在beforeCreate中访问上下文对象(获取currentUser)。
myModel.beforeCreate = function(next, md) {
var Category = md.app.models.Category;
var ctx = loopback.getCurrentContext();
var currentUser = ctx && ctx.get('currentUser');
...
});
当我通常从资源管理器访问它但我尝试在单元测试中使用mocha访问它时,它可以正常工作
我收到错误,因为未设置currentUser。
所以,当我尝试设置currentUser时,我不会在测试中获得上下文对象。
var ctx = loopback.getCurrentContext();
if (ctx) console.log("CTX exists");
这里ctx为空。
请建议我出错的地方。
干杯 拉吉
答案 0 :(得分:0)
我认为如果您使用loopback-testing模块,那么您将更容易获得成功。具体来说,givenLoggedInUser
函数为您的测试创建一个用户并将该用户记录下来,同时创建一个保存的令牌。
var lt = require('loopback-testing');
var credentials = { email: 'user@example.com', password: 'pwd' }
lt.givenLoggedInUser(credentials, 'user');
it('should have a logged in user', function (done) {
if (loopback.getCurrentContext()) {
console.log("CTX exists", this.user);
}
});
这也应该创建您需要的当前上下文。在这里查看其余的中间件测试以获得更多帮助:https://github.com/strongloop/loopback/blob/master/test/rest.middleware.test.js#L128