我正在围绕一些Sequelize(JS ORM)代码编写一些集成测试。大多数Sequelize函数调用返回Promises,我还没有用过。是否有更清晰的方法来编写以下测试用例?
it('can add a membership to a user, and user will receive membership.', function() {
return db.Sequelize.Promise.join(
User.create({ firstName: 'foo', lastName: 'bar',
identifier: 'foobar', password: 'whatever', }),
Membership.create( { displayName:'Iron Maiden',role:'somerole' }),
// This is the part I'd like to improve the clarity of,
// if possible.
function(expectedUser, membership) {
return membership.setUser(expectedUser).then(
function(updatedMembership) {
return updatedMembership.getUser().then(
function(actualUser) {
return assert.equal(actualUser.id, expectedUser.id);
})
})
})
});
答案 0 :(得分:2)
function(expectedUser, membership) {
return membership.setUser(expectedUser)
.then(function(updatedMembership) {
return updatedMembership.getUser();
})
.then(function(actualUser) {
return assert.equal(actualUser.id, expectedUser.id);
});
});