1
とからかっ:Sinon私はSequelizeを使用して、次のnodejs機能を持っているSequelize
var processDatabase = function (dbConnection, schema, recordsets) {
var myLogTable = dbConnection.define(schema.tableName, schema.myLogSchema, schema.myLogSchemaIndex);
myLogTable.sync({
force: false,
freezeTableName: true,
logging: console.log
}).then(function() {
console.log('Table synced...');
for (k = 0; k < recordsets.length; k++) {
var query = "Some query";
dbConnection.query(
query, {
type: dbConnection.QueryTypes.SELECT
}
)
.then(function (results) {
console.log('MYSQL Selection Done');
})
.catch(function (err) {
console.log('MYSQL Error: ' + err.message);
});
}
}).catch(function (err) {
console.log('MYSQL Sync Error: ' + err.message);
});
};
私はモックに新しいですし、特にキャッチ部分をテストする方法がわかりません。
これは、私が思い付くことができ、私のユニットテストですが、私は同期の呼び出しがキャッチ部へ行くことができるかわからない:
私ができるように、私は私のモックを書くだろうかdescribe('when call processDatabase', function() {
it('should process successfully when sync fails', function (done) {
seqConnection.define = function (tableName, schema, schemaIndex) {
return mockMyLogModel;
};
processProfilesNotMapped(seqConnection, {
tableName: 'SomeTable',
myLogSchema: myLogSchema,
myLogSchemaIndex: myLogSchemaIndex
}, []);
done();
})
});
捕まえるだけでなく、その両方をカバーすることができるようにテストしますか?