gpt4 book ai didi

node.js - 如何处理sinon中的catch,单元测试nodejs

转载 作者:行者123 更新时间:2023-12-03 22:35:56 26 4
gpt4 key购买 nike

在我的用户服务中:

createUser: async (data) => {
const user = new UserDBEntryMapper(data);
const createdUser = await UserModel.create(user).catch(error => {
this.handleError(error);
});
return createdUser ? new UserBOMapper(createdUser) : null;
}

在我的 user.test.js
it.only('Create New User', async () => {
const stub = sinon.stub(UserModel, "create").returns(user);
const created = await UserService.createUser(user);
expect(stub.calledOnce).to.be.true;
});

抛出错误为:
Create New User:
TypeError: UserModel.create(...).catch is not a function

如果我删除 catch 中的 UserService 块,测试通过,但我们需要一个 catch 块。我该如何处理?

注意: UserModel.create()sequelize 默认函数

最佳答案

Promise 需要在模拟中返回。像这样的东西

const stub = sinon.stub(UserModel, "create").returns(Promise.resolve(user));

关于node.js - 如何处理sinon中的catch,单元测试nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60597739/

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