coは戻り値としてfunction (done) { ... }みたいな関数("thunk")を返すので、コールバックを受け取る関数だと非同期になるmochaと組み合わせてこのようにシンプルに書けるようだ。 (作者が同じ visionmedia 氏なので、考慮に入れられているっぽい?) it('should do something', co(function *() { ... actual = yield doSomething(); assert.equal(expected, actual); ... }));
