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 READMEsetUpに記載されているセクションにセットアップ コードを配置します。

于 2013-11-12T04:26:05.293 に答える