Javascript 摩卡咖啡前不';别让我下一个去
我有一个摩卡测试的问题,我正在尝试做一些测试的初始设置。不幸的是,我不知道为什么摩卡咖啡没有显示任何错误。Promise.all正常工作并向我显示结果,但它不允许我进入下一步->测试 只要我删除第二个承诺(createCourseAndReview)并且所有测试都通过(我的意思是它正在执行测试),它就可以工作Javascript 摩卡咖啡前不';别让我下一个去,javascript,promise,mocha.js,chai,Javascript,Promise,Mocha.js,Chai,我有一个摩卡测试的问题,我正在尝试做一些测试的初始设置。不幸的是,我不知道为什么摩卡咖啡没有显示任何错误。Promise.all正常工作并向我显示结果,但它不允许我进入下一步->测试 只要我删除第二个承诺(createCourseAndReview)并且所有测试都通过(我的意思是它正在执行测试),它就可以工作 我没有收到任何错误,也不知道如何解决此类问题。您的来源有点混乱。您没有将回调样式的方法正确地转换为承诺,您确实应该避免使用新承诺模式。您也不需要为每个承诺链都使用catch语句,只需要最后
我没有收到任何错误,也不知道如何解决此类问题。您的来源有点混乱。您没有将回调样式的方法正确地转换为承诺,您确实应该避免使用
新承诺
模式。您也不需要为每个承诺链都使用catch语句,只需要最后一个。我将花几分钟重写您的源代码,避免异步/等待,但删除一些糟糕的设计模式。事后看来,我不确定您调用的API是否正确。似乎Users.remove()
是回调样式,而User.create()
是承诺样式。如果您没有编写User
,我认为这也是不正确的,因为这些范例通常不是混合的。如果你真的写了它,我真的建议你首先回到那些函数,让一切都成为承诺式的。但在承诺中,我能展示的是正确的结果。我的第一步是转到你的用户对象,确保每个函数都使用承诺,而没有函数使用回调。现在看起来这个类同时做这两件事。你的源代码有点乱。您没有将回调样式的方法正确地转换为承诺,您确实应该避免使用新承诺
模式。您也不需要为每个承诺链都使用catch语句,只需要最后一个。我将花几分钟重写您的源代码,避免异步/等待,但删除一些糟糕的设计模式。事后看来,我不确定您调用的API是否正确。似乎Users.remove()
是回调样式,而User.create()
是承诺样式。如果您没有编写User
,我认为这也是不正确的,因为这些范例通常不是混合的。如果你真的写了它,我真的建议你首先回到那些函数,让一切都成为承诺式的。但在承诺中,我能展示的是正确的结果。我的第一步是转到你的用户对象,确保每个函数都使用承诺,而没有函数使用回调。现在看来,这两门课是同时进行的。
before(() => {
return new Promise((resolve, reject) => {
const createUser = User.remove({}, function(err) {
if (err) {
console.log(err);
return Promise.reject();
}
User.create({
googleId: "googleId",
name: "name",
email: "email@email.com",
phone: "000000000"
})
.then(res => {
token = createToken({ googleId: res.googleId });
return Promise.resolve();
})
.catch(err => {
console.log(err);
return Promise.reject();
});
});
const createCourseAndReview = Course.remove({}, function(err) {
if (err) {
return Promise.reject();
}
Course.create({
title: "Tytuł",
shortTitle: "Krótki tytuł",
video: {
link: "http://",
title: "Tytuł",
shortDescription: "video desc"
},
content: "zawartość",
image: "gosc.jpg",
duration: "2 tygonie",
price: "120zł/h",
shortDescription: "Krótki opis",
technologies: ["Java", "Javascript"],
maxMembers: "12/12",
reviews: [],
comments: []
})
.then(doc => {
Course.update(
{ _id: doc._id },
{
$push: {
reviews: {
content: "Zawartość",
grade: 5,
user: {
googleId: "googleId",
name: "name",
email: "email@email.com",
phone: "000000000"
}
}
}
}
).then(() => {
return Promise.resolve();
});
})
.catch(err => {
console.log(err);
return Promise.reject();
});
});
Promise.all([createUser, createCourseAndReview])
.then(results => {
console.log(results);
resolve();
})
.catch(err => {
console.log(err);
reject();
});
});
});