是否有一种方法可以测试(潜在的)异步函数与誓言的交错?
例如:
// Topic portion
var user = new User('jacob')
user.set('email,'foo@bar.com')
user.save() // a
user.set('email',derp@cherp.com')
user.save() // b
user.refresh(this.callback) // Reload from database
// Callback
assert.equals(user.email,'derp@cherp.com')
两次扑救之间可能存在竞争条件。在编写测试时,我想确保我的 API 确保 b 最后完成(并且我们有正确的电子邮件最终值)。按照它的编写方式,测试有时会巧合地通过。