誓約を使用して非同期関数の (潜在的な) インターリーブをテストする方法はありますか?
例えば:
// 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')
2 つの保存の間に競合状態が発生する可能性があります。テストを作成するときは、API が確実に b が最後に終了するようにする必要があります (そして、電子メールの正しい最終値が得られるようにします)。このように書かれていると、たまたまテストがパスすることがあります。