写到了数据库层面,Unit Test思路探讨。。。
一个项目推进到了数据库接入阶段,在测试驱动开发的情况下,问题来了。 在Node.js 与MongoDB架子下,实现app Transaction层面的Two Phase Commit密如蛛网的回调当中,大家对如何实现Unit Test有什么想法么?
基本上局面是这个样子的。 async.waterfall([ Transaction insert, 动作1, 动作2, 。。。 动作m ],function(err, result){ }); 每一个动作,均有数据库操作,带有条件分支。理想的情况,当然是依靠mocha测试用例,在各个transaction层面操控数据库作数据来覆盖分支,但是对于如何下手还是有点麻烦…
2 回复
这已经不是 Unit Test 的范畴了.
function handleIO(err, rows) {
//assertion
db.io('query', handleIO2);
}
function handlerIO2(err, results) {
//assertion
db.io('query', handleIO3);
}
describe('a', function() {
it('a', function(done) {
db.io('query', hanlderIO);
});
});
在设计的时候如果不是用async可以使用 非匿名函数。