我正在为一个数据库驱动程序编写单元测试。在第一个测试中,我创建了一些对象,然后打算在稍后的测试中使用。我想写测试,这样如果这个(关键)步骤失败了,其他的一切都会停止。我这么做了,但感觉有点太老土了.这种情况下的最佳实践是什么?
"create constructors and layers": function( test ){
var self = this;
try {
self.shared.personLayer = new self.Layer( 'people', { name: true, surname: true, age: true } );
test.ok( self.shared.personLayer );
self.shared.personLayerNoDb = new self.LayerNoDb( 'people', { name: true, surname: true, age: true }, self.db );
test.ok( self.shared.personLayerNoDb );
var personLayerOverwriteDb = new self.Layer( 'people', { name: true, surname: true, age: true }, self.db );
test.ok( personLayerOverwriteDb );
self.shared.ranks = new self.Layer( 'ranks', { name: true, number: true } );
test.ok( self.shared.ranks );
} catch( e ){
console.log("Error: couldn't create layers, aborting all tests...");
console.log( e );
console.log( e.stack );
process.exit();
}
test.done();
},发布于 2013-11-12 12:26:05
所有其他测试所需的任何“关键步骤”都不是单元测试。单元测试应该是相互独立的,原则上可以以任何顺序运行。
你要找的是一个“之前”或“每个之前”的钩子。
将设置代码放在documented on the nodeunit README的setUp部分
https://stackoverflow.com/questions/19920812
复制相似问题