0

我正在为数据库驱动程序编写单元测试。在第一个测试中,我创建了一些我打算稍后在测试中使用的对象。我想编写测试,以便如果这个(关键)步骤失败,其他一切都会停止。我这样做了,但感觉有点太老套了……在这种情况下,最佳做法是什么?

"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();
},
4

1 回答 1

1

进行所有其他测试所需的任何“关键步骤”都不是单元测试。单元测试应该是相互独立的,原则上可以以任何顺序运行。

您正在寻找的是“Before”或“Before Each”钩子。

将您的设置代码放在 nodeunit README 中记录setUp的部分中

于 2013-11-12T04:26:05.293 回答