我正在尝试为下面的代码实现单元测试
try {
return await request.post(options);
} catch (err) {
if (err.statusCode === 401) {
log.info('Not authenticated. Refreshing token...');
const tokenResponse =
await Janus.refreshToken(graph.username, graph.password, graph.host, graph.port);
const token = tokenResponse.body.token;
graph.token = token;
return gremlinQuery(graph, query);
}
log.error(`Gremlin script didn't pass : ${err}`);
}
为了测试catch
部分中包含的行,我将post
函数存根:
stubPost.callsFake(() => Promise.reject(new Error()));
如何使用属性statusCode
实现错误? Error
构造函数正在等待string
作为输入。我不能把它传递给对象或类似的东西吗?
答案 0 :(得分:0)
执行此操作的一种方法可以如下所示
MyApiError = function(data) {
this.code = data.code;
this.message = data.message
}
MyApiError.prototype = Error.prototype;
var e = new MyApiError({code: 33, message: 'test'});
e.code; // 33
e.message; // 'test'